• ベストアンサー

gridviewでIMEを設定するには

GridViewについて教えてください。 <環境>ASP.NET GridViewのItemTemplateにテキストボックスがあります。 そのテキストボックスのIME制御をしたいのですが記述方法がわかりません。 RowDataBoundイベントに記述するのでしょうか? gridviewでないと下記のようにすることで設定できるのですが、gridviewに苦戦しています。 ご教授お願いします。 txtName.Style.Add("ime-mode", "active")

noname#208236
noname#208236

質問者が選んだベストアンサー

  • ベストアンサー
  • mdp36
  • ベストアンサー率72% (26/36)
回答No.1

cssかaspxに書けばいいのでは? イベントでやるならRowのFindControlを使います。

noname#208236
質問者

お礼

CSSでime-mode: active; と記述することでできましたが、 検証 (CSS 2.1): 'ime-mode' は認識できる CSS プロパティ名ではありません。 と警告がでてしまいます。これは無視してもよろしいのでしょうか?

その他の回答 (1)

  • mdp36
  • ベストアンサー率72% (26/36)
回答No.2

問題ありません。 エラーと入っても非対応ブラウザで無視されるだけです。 気になるのならオプションダイアログのテキストエディタ/HTML/検証にある「ターゲット」をIE6に設定すれば消えます。

noname#208236
質問者

お礼

ありがとうございました。

関連するQ&A

  • ime-mode: activeのことで

    やりたいのは下記のようなことです。でも下記ではime-modeを制御できないようなので、正しい方法があるのかを知りたい。ブラウザの画面で文字を入力したときにime-modeを制御できるのか。 <SPAN contenteditable=true style="ime-mode: active"></SPAN> <SPAN contenteditable=true style="ime-mode: inactive"></SPAN>

  • GridView でコンボボックスの設定

    再質問をさせていただきます。 gridviewを作成しました。 -------------------------------------------------------------------------------- <asp:GridView ID="grdList" runat="server" DataSourceID="sqldsList"> <Columns> <asp:BoundField DataField="ITEMNO" HeaderText="ITEMNO"></asp:BoundField> <asp:TextBox ID="txtNAME" runat="server" Text='<%# Bind("ITEM_NAME") %>'></asp:TextBox> <ItemTemplate>   <asp:DropDownList CssClass="cnbstr" ID="cnb_KBN" runat="server"     DataSourceID="sqldscnb1" DataTextField="NAME" DataValueField="NO" AutoPostBack="True"></asp:DropDownList> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> -------------------------------------------------------------------------------- このコンボボックスに値を設定させたいのですが、ITEMNO="01"の時だけ、txtNAMEの値を初期表示したいと思っています。 RowDataBound、RowCreatedで可能かと思ったのですができずに困っています。 どなたかご教授お願いします。 Protected Sub grdList_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles grdList.RowDataBound   If e.Row.RowType = DataControlRowType.DataRow Then     IF DataBinder.Eval(e.Row.DataItem, "ITEMNO").ToString() = "01" THEN       Dim dlist As DropDownList = DirectCast(e.Row.FindControl("cnb_KBN"), DropDownList)       dlist.SelectedValue = "ITEM_NAME" ←こんな感じのことをしたい     ELSE       設定しない     END IF   End If End Sub

  • gridviewの中のCSSを変更したい

    画面にチェックボックスがあります。 チェックボックスを Trueにした時、gridviewのaタグを有効にし、Falseにした時、無効にしたいと思っています。 vb側のチェックボックスを変更した時に、どのように記述すればよいでしょうか? できなければ、Falseの時に、aタグのclassを空白にしてもいいかなと思っています。 どなたかご教授ください。 <div id="containerData" class="containerData" onscroll="containerHeader.scrollLeft=this.scrollLeft;" runat="server"> <asp:GridView ID="grdList" runat="server" AutoGenerateColumns="False" DataSourceID="sqldsList" CssClass="List" DataKeyNames="NO" SelectionMode="None" CellPadding="0" CellSpacing="0" GridLines="None" > <Columns> <asp:TemplateField HeaderText="番号"> <ItemTemplate> <a class="tooltip" title='<%# Eval("NO") %>'> <custom:textLabel ID="lblNo" CssClass="No detailRow" runat="server" Text='<%# Eval("NO") %>' /> </a> </ItemTemplate> <ItemStyle CssClass="rowStyle"></ItemStyle> </asp:TemplateField> <asp:TemplateField HeaderText="名前"> <ItemTemplate> <a class="tooltip" title='<%# Eval("NAME") %>'> <custom:textLabel ID="lblName" CssClass="Name detailRow" runat="server" Text='<%# Eval("NAME") %>' /> </a> </ItemTemplate> <ItemStyle CssClass="rowStyle"></ItemStyle> </asp:TemplateField> </Columns> </asp:GridView> </ContentTemplate> </div>

  • ASP.Net GridView の加工

    大変お世話になります。 GridView のテンプレートモードにいくつかのコントロールを配置しております。 コントロールAの値が True なら コントロールBの背景色を変えたいと思っているのですが、 どのイベントでそれらを記述して良いかわかりません。 また、GridView1_DataBinding、GridView1_DataBound、GridView1_RowDataBound などで記述しようとするのですが、これらのイベントでは、FindControl メソッドが使えないのですが、  GridView1_RowDataBound イベントで e.Row.Cells(1).Text = "1" などで記述しないとダメでしょうか? テンプレートにしてしまうと、e.Row.Cells の概念はどういうふうになるなど、わからないことだらけです。 何卒よろしくお願いいたします。

  • GridViewからの値を全件LOOPして取得したい

    GridViewについて教えてください。 <環境>ASP.NET データソースにSQLDataSourceを指定し、GridViewに全件を自動バインドして表示しています。 画面上に設置したボタン押下のイベントハンドラで、そのGridViewの全行をループして各列の値を参照したいのですが、 以下のようなに記述しても(1)の部分でNOTHINGとなりエラーになります。 どのようにすればよいでしょうか? やりたいことは、GridView全行ループし、ITEMKINDの値が"1"の時、TemplateField内にあるtxtNVERCHARの値を取得することです。 ご教授お願いします。 --------------------------------- <Columns> <asp:BoundField DataField="ITEMKIND" HeaderText="ITEMKIND" Visible="False" /> </asp:BoundField> <asp:TemplateField HeaderText="ITEM"> <ItemTemplate> <asp:TextBox CssClass="txtstr" ID="txtNVERCHAR" runat="server" Text='<%# Bind("ITEM_NVERCHAR", "{0}") %>'></asp:TextBox> </ItemTemplate> </asp:TemplateField> </Columns> --------------------------------- Protected Sub 更新_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnExec.Click For Each row As GridViewRow In grdList.Rows Dim strITEMKIND As TextBox = DirectCast(row.FindControl("ITEMKIND"), TextBox)  ←(1) IF strITEMKIND.Text = "1" THEN Dim strDDL As TextBox = DirectCast(row.FindControl("txtNVERCHAR"), TextBox) End IF Next End Sub

  • GridViewのDropDownLisについて

    よろしくお願いします ASP.NET(Microsoft Visual Basic 2010)で開発をしております。 GridViewにDropDownLisを配置しているのですが、 リストを選択したときの、GridViewの行(row)を取得する方法が分かりません。 OnSelectedIndexChangedを使用すると変更時のイベントを拾えて リストボックスの内容を取得出来るところまでは調べたのですが、 変更したリストボックスと同じ行にある別の項目の値を取得する 必要があるのですが、その方法が分かりません。 変更した行番号が分かれば「gridView.Rows(3).Cells(3).Text」で 値の取得は出来るのかな?と考えました。 なので、目的は同行の値の取得なので、もし行数が分からなくても 構いません。 自分なりには、かなり調べたつもりなのですが、どうしても答えを 導けず困っています。 お分かりの方がありましたら、是非ご教授頂ければ幸いです。 よろしくお願い致します。

  • ASP GridViewの高さを固定にするには?

    GridViewで全角10文字がちょうど表示できる幅を設定した場合、 10文字を超えるデータを表示しようとするととセル内で折り返してしまいます。 折り返しせず、10文字だけ表示するにはどうすればいいのでしょうか? <div id="containerData" class="containerData" onscroll="containerHeader.scrollLeft=this.scrollLeft;" runat="server"> <asp:UpdatePanel ID="UpdPlView" runat="server" UpdateMode="Conditional"> <ContentTemplate> <asp:GridView ID="grdList" runat="server" CellPadding="0" AutoGenerateColumns="False" DataSourceID="sqldsList" ShowHeader="False" AllowPaging="False" ShowFooter="True" GridLines="None"> <Columns> <asp:TemplateField HeaderText=""> <ItemTemplate> <table cellspacing="0" class="detailRow"> <tr> <td style="width:100px;"><asp:Label ID="lbl1" runat="server" Text='<%# Eval("Field1") %>'></asp:Label></td> <td style="width:500px;"><asp:Label ID="lbl2" runat="server" Text='<%# Eval("Field2") %>'></asp:Label></td> </tr> </table> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> </ContentTemplate> </asp:UpdatePanel> </div> </div> ***スタイルシート*** .containerData { font-size: 11pt; border: solid 1px black; height: 500px; } .detailRow tr { height:30px; background:white; } .detailRow td { border-bottom: 1px solid black; }

  • HTMLのタグ「ime-mode」について

    全角入力<input type="text" style="ime-mode:active"> 上記の記述でテキストボックスの入力モードが 全角入力モードになります。 しかし、その中でも端末によって入力される値が異なっていました。 A)「a」を打つと、「あ」と入力される。(正常) B)「a」を打つと、「A」と入力される。 (下に点線が出るので全角入力みたいだが、英字で入力される。) ATOKなどのIMEモードの設定だと思い、正常な方と設定を見比べましたが、 差異はありませんでした。 このように全角入力にしてあるのに、異なった入力がされてしまうような 状況の原因が分かる方はいらっしゃいましたらよろしくお願いします。

  • UpdatePanel と GridViewについて教えてください

    現在、ASP.NET(VB)にて開発を行っています。今悩んでいる事は GridView内でUpdatePanelを使用した際にエラーが表示されます。 エラー内容は下記の通りです。 InvalidCastException はユーザーコードによってハンドルされませんでした。 ______________________________________________________________________ 型 'System.Web.UI.UpdatePanel' のオブジェクト型 'System.Web.UI.WebControl.GridViewRow' にキャストできません。 どなたか、エラーの対処方をご存知の方がいらっしゃいましたらご指導宜しくお願いします。なお、ソースは下記の様に記述してみました。 <%@ Page Language="VB" %> <%@ Import Namespace="System.Data.SqlClient" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> Protected Sub TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Dim txt As TextBox = DirectCast(sender, TextBox) Dim row As GridViewRow = DirectCast(txt.Parent.Parent, GridViewRow) CD.Text = txt.Text End Sub </script> <html> <body> <form id="form1" runat="server"> <asp:ScriptManager ID="SM" runat="server"> </asp:ScriptManager> <asp:TextBox ID="CD" runat="server" Width="50px"></asp:TextBox> <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False" DataKeyNames="CD" DataSourceID="Source" ShowFooter="True"> <Columns> <asp:TemplateField HeaderText="CD"> <ItemTemplate> <asp:Label ID="lbl" runat="server" Text='<%# Bind("CD") %>'></asp:Label> </ItemTemplate> <FooterTemplate> <asp:UpdatePanel ID="UP" runat="server"> <ContentTemplate> <asp:TextBox ID="NewCD" runat="server" AutoPostBack="True" OnTextChanged="TextChanged" Width="50px"></asp:TextBox> </ContentTemplate> </asp:UpdatePanel> </FooterTemplate> </asp:TemplateField> </Columns> </asp:GridView> <asp:SqlDataSource ID="Source" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionStrings %>" SelectCommand="SELECT * FROM [TABLE]" ProviderName="System.Data.SqlClient"> </asp:SqlDataSource> </form> </body> </html>

  • HTMLのタグ「ime-mode」について

    スタイルシートのime-modeプロパティについての質問です。 <input type="text" name="mail" size="40" style="ime-mode: inactive;"> もしくは <input type="text" name="mail" size="40" style="ime-mode: disabled;"> を使用した場合に、「英数字入力モード」になるはずなのですが 現在試してみたところ、数字しか入力できません。 半角英数字のみ入力可能としたいのですが、数字しか入力出来ないこの原因が分かる方はいらっしゃいませんでしょうか style="ime-mode: active;" とした場合には、正常に日本語入力モードになります。

    • ベストアンサー
    • HTML

専門家に質問してみよう