【问题标题】:Finding the Current Row Being Edited in an asp:GridView using jQuery使用 jQuery 在 asp:GridView 中查找正在编辑的当前行
【发布时间】:2012-03-20 10:42:41
【问题描述】:

我目前有一个 asp:GridView,它显示几个 BoundFields,然后一个 asp:TemplateField 包含一个 asp:DropDownList。我可以向网格中添加多行并单独编辑每一行。

我需要了解的是如何获取当前行中正在编辑的当前 DropDownList 的选定值。

我尝试在链接按钮上调用的函数中使用以下代码:

var product = $('.selectedItem').val();

但是这段代码只返回第一行的值。因此,即使我在第 3 行编辑 DropDown 并选择第 5 个值,如果第 1 行的值为 2,它也只会返回 2。

DropDown 的 html:

 <asp:TemplateField HeaderText="Vendor">
     <ItemTemplate>
        <asp:HiddenField ID="hidEntityID" runat="server" Value='<%# Eval("SomeID") %>' />
        <asp:DropDownList ID="ddlList" runat="server" DataSourceID="dsList" DataTextField="Value" DataValueField="ID" Font-Names="Verdana" Font-Size="11px" ForeColor="#2D2D2D" ClientIDMode="Static" CssClass="selectedItem" OnDataBound="ddlEntity_DataBound">
            <asp:ListItem Value="-1">--- Select ---</asp:ListItem>
        </asp:DropDownList>
        <asp:ObjectDataSource ID="dsList" runat="server" SelectMethod="GetList" TypeName="SomeClass" OldValuesParameterFormatString="original_{0}"></asp:ObjectDataSource>
     </ItemTemplate>
 </asp:TemplateField>

我在网格中的链接按钮:

 <ItemTemplate>
       <a href="#" onclick='addEditDetail(<%# Eval("ID") %>)'>Detail</a>
 </ItemTemplate>

基本上我需要的是找到我正在编辑或选择“编辑”的行的当前索引,然后只获取该特定 DropDown 的值。

任何建议都会很棒。

谢谢

【问题讨论】:

    标签: jquery asp.net gridview drop-down-menu


    【解决方案1】:

    是的,当您的选择器请求默认链接按钮时,它将始终返回第一个下拉菜单。 $('.selectedItem') 将返回所有下拉菜单,将第一个保持为默认值。

    你的链接按钮点击事件应该是:

     <ItemTemplate>
           <a href="#" onclick='addEditDetail(this)'>Detail</a>
     </ItemTemplate>
    
     function addEditDetail(linkBtn)
    {
        var currentDropDown = $(linkBtn).closest("tr").find("select[id*='ddlList']");
        alert(currentDropDown.val());
    }
    

    【讨论】:

    • 将 'addEditDetail(this)' 变成 'addEditDetail(this);return false;'如果这对您很重要,请阻止“#”出现在 URL 中。
    • 谢谢!这非常有效,实际上解决了我的很多问题。真的很感激。
    【解决方案2】:

    为什么不将下拉控件 ID 值也设置为记录 ID?这样,您可以使用 addEditDetail 中传递的 ID 值并检索特定的下拉列表。我会将下拉 ID 设置为 "Dropdown" + Eval("ID") 并将其用作 JQuery 中的标识符:$("#Dropdown" + ID)

    【讨论】:

      猜你喜欢
      • 2020-05-12
      • 1970-01-01
      • 1970-01-01
      • 2011-03-19
      • 2015-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多