お世話になっております。
以下のように文字列を記述すると下記の太文字部分がエラーになってしまいます。
HTMLとなったときのIDは⇒id="MainContent_FpDirectList_ctl05_Input"です。
MainContent_FpDirectListがgrid.idで05部分がrowとcolになり動的生成します。
document.getElementById('<%= grid.id + "_ctl" + **row **+ **col **+ "_Input" %>')
JavaScript
1var grid = document.getElementById('<%=this.Grid.ClientID%>') 2var tx = document.getElementById('<%= grid.id + "_ctl" + row + col + "_Input" %>'); 3var r = tx.createTextRange(); 4alert(r.text); 5
**
新規WEBサイトで作成したものに、「GcTextBox1」changeイベントを追加しました。
「<% %>」付きのものは動作しますが、無いものは動作しません。
あらかじめテキストやラベルにセットした値はブラウザ表示したときは正しく入っています。
ブラウザ表示した後に、テキストに何か値を書き入れてフォーカスを抜けると
ダイアログが
表示されます --> alert("aa=" + FindIMControl('<% =this.GcTextBox1.ClientID %>').GetValue());
表示されます --> var lbl = document.getElementById('<%=this.Label1.ClientID%>');
alert("ラベル1" + lbl.innerHTML);
表示されない --> var lbl2 = document.getElementById(this.Label1.ClientID);
alert("ラベル1" + lbl2.innerHTML);
以上のような結果になります。
サンプルといいながら、実際にはmasterページとか他設定ファイルなどがあります。
このサンプルは、新規WEBページのプロジェクト作成してから
適当なラベル追加して
<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">内に
javascriptを書いているだけです。ボタンイベントで書いてもよかったように思います。
サンプルにはテキストがあるのは、私が簡単にJavascriptのイベントを起こすのに書いているだけです。
ラベルだけでも再現できるかと思います。
**
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <%@ Register assembly="GrapeCity.Web.Input.v100, Version=10.0.4005.2012, Culture=neutral, PublicKeyToken=c3bd7c1dccef5128" namespace="GrapeCity.Web.Input.IMEdit" tagprefix="im_edit" %> <%@ Register assembly="GrapeCity.Web.Input.v100, Version=10.0.4005.2012, Culture=neutral, PublicKeyToken=c3bd7c1dccef5128" namespace="GrapeCity.Web.Input.IMExtenders" tagprefix="im_extenders" %> <asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server"> <script type="text/javascript"> function change() { alert("aa=" + FindIMControl('<% =this.GcTextBox1.ClientID %>').GetValue()); var lbl = document.getElementById('<%=this.Label1.ClientID%>'); alert("ラベル1" + lbl.innerHTML); var lbl2 = document.getElementById(this.Label1.ClientID); alert("ラベル1" + lbl2.innerHTML); } </script> <div class="jumbotron"> <h1>ASP.NET</h1> <p class="lead">ASP.NET is a free web framework for building great Web sites and Web applications using HTML, CSS, and JavaScript.</p> <p><a href="http://www.asp.net" class="btn btn-primary btn-lg">Learn more »</a></p> <im_edit:GcTextBox ID="GcTextBox1" runat="server" HasLoadFromXml="True" Text="MAAA"> <clientevents textchanged="change"> </clientevents> </im_edit:GcTextBox> <p> <im_extenders:GcShortcut ID="GcShortcut1" runat="server"> <shortcutitem controlid = "GcTextBox1" value = "Clear,113,DropDown,118"/> </im_extenders:GcShortcut> </p> <asp:Label ID="Label1" runat="server" Text="らべる"></asp:Label> </div> <div class="row"> <div class="col-md-4"> <h2>Getting started</h2> <p> ASP.NET Web Forms lets you build dynamic websites using a familiar drag-and-drop, event-driven model. A design surface and hundreds of controls and components let you rapidly build sophisticated, powerful UI-driven sites with data access. </p> <p> <a class="btn btn-default" href="http://go.microsoft.com/fwlink/?LinkId=301948">Learn more »</a> </p> </div> <div class="col-md-4"> <h2>Get more libraries</h2> <p> NuGet is a free Visual Studio extension that makes it easy to add, remove, and update libraries and tools in Visual Studio projects. </p> <p> <a class="btn btn-default" href="http://go.microsoft.com/fwlink/?LinkId=301949">Learn more »</a> </p> </div> <div class="col-md-4"> <h2>Web Hosting</h2> <p> You can easily find a web hosting company that offers the right mix of features and price for your applications. </p> <p> <a class="btn btn-default" href="http://go.microsoft.com/fwlink/?LinkId=301950">Learn more »</a> </p> </div> </div> </asp:Content>
以上、宜しくお願い致します。







