1

我在 GridiView 中有一个 ASP.NET GridView 控件和 DropDownList 控件,如下所示:

<asp:GridView ID="GridView1" runat="server">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:DropDownList ID="DropDownList1" runat="server">
                </asp:DropDownList>
            </ItemTemplate>
        </asp:TemplateField>
     </Columns>
</asp:GridView>

我想使用 jQuery/JavaScript 来获取 DropDownList 元素并检测项目更改,如下所示:

$(function() {
    $("#<%= DropDownList1.ClientID %>").change(function() {
        if ($("#<%= DropDownList1.ClientID %>").find('option:selected').text() == "1") {
            alert('1');
        } else {
            alert('2');
        }
    });
});

我的问题是,如何在 GridView 中选择 DropDownList,然后检查更改?

请指教。提前谢谢你。

4

3 回答 3

4

使用类选择器将 css 分配给带有类class的下拉列表和事件bind

html

<asp:GridView ID="GridView1" runat="server" >
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:DropDownList ID="DropDownList1" runat="server" CssClass="ddlclass">
                </asp:DropDownList>
            </ItemTemplate>
        </asp:TemplateField>
     </Columns>
</asp:GridView>

Javascript

$(function() {
    $(".ddlclass").change(function() {
        if ($(this).find('option:selected').text() == "1") {
            alert('1');
        } else {
            alert('2');
        }
    });
});
于 2013-03-19T07:38:26.930 回答
1

正如你所尝试的那样使用有点困难

 $("input[id*=DropDownList1]")

$(function() {
     $("input[id*=DropDownList1]").change(function() {
        if ($(this).find('option:selected').text() == "1") {
            alert('1');
        } else {
            alert('2');
        }
    });
});

但请确保您没有任何控件 ID,例如DropDownList1

于 2013-03-19T07:42:42.040 回答
0

尝试使用.find()

$(function() {
   $("#GridView1").find("[id^='DropDownList']").change(function() {
      if ($('option:selected',this).text() == "1") {
          alert('1');
      } else {
          alert('2');
      }
   });
});

我不在.net环境中工作,所以它完全是猜测,可能有用。

注意:The above line only work if your ids are starting with DropDownList

于 2013-03-19T07:42:02.233 回答