none
GridViewのTemplateField内ListBoxについて RRS feed

  • 質問

  • OS Widows7Pro + VS2008(SP1) + Ajax3.5 + 開発サーバ
    Webアプリで、VS2008のASP.NETを勉強中の初心者です。
    本当はAJAXのComboBoxが日本語に対応していないようなので変わる物をと思っています。

    そこでGridViewのTemplateFieldにTextBoxとListBoxを配置し、ListBoxで選択した項目をTextBoxに表示させたいのですが
    どのイベントを使うか理解できません。
    最終的にはTextBoxの内容をDbに更新を目標にしています。

        <asp:GridView ID="DataView" runat="server" AutoGenerateColumns="False">
            <Columns>
      :
                <asp:TemplateField HeaderText="運送便名">
                    <ItemTemplate>
                        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                            <ContentTemplate>
                                <asp:TextBox ID="txtTrackName" runat="server"></asp:TextBox>
                                <br />
                                <asp:ListBox ID="lstTrackName" runat="server" Width="155px" AutoPostBack="True">
                                    <asp:ListItem>○○運輸</asp:ListItem>
                                    <asp:ListItem>XX急便</asp:ListItem>
                                    <asp:ListItem>△△運輸</asp:ListItem>
                                </asp:ListBox>
                            </ContentTemplate>
                        </asp:UpdatePanel>
                    </ItemTemplate>
                    <HeaderStyle BackColor="Silver" />
                </asp:TemplateField>
      :
            </Columns>
        </asp:GridView>

    一般的にはListBox_SelectedIndexChangedイベントに記述すればListBoxで選択した項目をTextBoxに表示できるのですが。
    まったくの初心者で申し訳ありませんが、ご指導ください。

    2014年12月11日 9:05

回答

  • 質問に対する直接の回答ではなくてすみませんが・・・

    > AJAXのComboBoxが日本語に対応していないようなので変わる物をと思っています。

    自分でコードを書いて実装する努力をするより、使えるライブラリを探す方に労力を費やした方が得策だと思います。(勉強のため自分でコードを書いて実装したいと言うことなら話は別ですが、そうではないですよね?)

    jQuert UI の Autocomplete の中で ComboBox として紹介されているものが目的のものに近いかもしれません。日本語も使えます。ASP.NET の DropDownList が選択項目のソースとしてそのまま使えますし。
     
    Autocomplete - ComboBox
    http://jqueryui.com/autocomplete/#combobox

    ドロップダウン式でなくてもよければ、Ajax Control Toolkit に以下のコントロールがあります。

    [ASP.NET AJAX]AutoCompleteコントロールでGoogleサジェスト風なオートコンプリート機能を実装するには?
    http://www.atmarkit.co.jp/fdotnet/dotnettips/569aspajaxautocmpl/aspajaxautocmpl.html

    他にもいろいろあると思いますので、ググルなどして探してみてください。


    なお、お勧めではありませんが、ブラウザが IE のみの場合に限り、(無理やり)日本語に対応させる方法があります。ご参考まで。

    ACT ComboBox の日本語対応
    http://surferonwww.info/BlogEngine/post/2012/03/18/Enabling-Japanese-handling-in-ComboBox-of-AJAX-Control-Toolkit.aspx

    • 回答としてマーク ASP勉強中 2014年12月12日 1:47
    2014年12月11日 9:34

すべての返信

  • 質問に対する直接の回答ではなくてすみませんが・・・

    > AJAXのComboBoxが日本語に対応していないようなので変わる物をと思っています。

    自分でコードを書いて実装する努力をするより、使えるライブラリを探す方に労力を費やした方が得策だと思います。(勉強のため自分でコードを書いて実装したいと言うことなら話は別ですが、そうではないですよね?)

    jQuert UI の Autocomplete の中で ComboBox として紹介されているものが目的のものに近いかもしれません。日本語も使えます。ASP.NET の DropDownList が選択項目のソースとしてそのまま使えますし。
     
    Autocomplete - ComboBox
    http://jqueryui.com/autocomplete/#combobox

    ドロップダウン式でなくてもよければ、Ajax Control Toolkit に以下のコントロールがあります。

    [ASP.NET AJAX]AutoCompleteコントロールでGoogleサジェスト風なオートコンプリート機能を実装するには?
    http://www.atmarkit.co.jp/fdotnet/dotnettips/569aspajaxautocmpl/aspajaxautocmpl.html

    他にもいろいろあると思いますので、ググルなどして探してみてください。


    なお、お勧めではありませんが、ブラウザが IE のみの場合に限り、(無理やり)日本語に対応させる方法があります。ご参考まで。

    ACT ComboBox の日本語対応
    http://surferonwww.info/BlogEngine/post/2012/03/18/Enabling-Japanese-handling-in-ComboBox-of-AJAX-Control-Toolkit.aspx

    • 回答としてマーク ASP勉強中 2014年12月12日 1:47
    2014年12月11日 9:34
  • SurferOnWwwさん。ありがとうございます。

    ご指摘の通り、勉強お為もありますが「業務に役立てたいアプリを作りたい」が重要なのです。

    上記の内容を今確認していますが、AutoCompleteコントロールで問題ないのではと思います。

    勉強させていただきます。ありがとうございました。

    2014年12月12日 1:52
  • 紹介した記事のものが要件に合わないとか、ググって調べても適当なものが見つからないなどで、最初の質問にアップされた形で進めたいという場合は、その旨言ってください。その方向で考えて返答しますので。

    ただし、その際は、

    > 一般的にはListBox_SelectedIndexChangedイベントに記述すればListBox
    > で選択した項目をTextBoxに表示できるのですが。

    をご自分でどこまで実装したか、期待した結果はどういうことで、それが実際の結果とどう違ったかなどを書いていただくようお願いします。

    2014年12月12日 2:12
  • SurferOnWwwさん、ご丁寧にありがとうございます。

    今回の件に関しては、前回ご指摘いただいた内容で問題はありません。

    別の方法で実現できれば、それはそれで私には勉強になります。

    ご指摘、感謝しています。ありがとうございます。

    2014年12月12日 5:54