如何从嵌套Gridview中的按钮单击获取TextBox值

时间:2016-07-16 16:32:36

标签: javascript jquery asp.net gridview

我有一个具有textbox & Button列的嵌套网格视图。如何在asp.net中使用jquery在textbox时显示警告Button Click的值 例如

<asp:GridView ID="GridParent" runat="server">
 <Columns>
   <asp:TemplateField>
     <ItemTemplate>
      <table>
        <tr>
         <td>
           -----------
           -----------
         </td>
         <td>
         <asp:GridView ID="GridChild" runat="server">
          <Columns>
           <asp:TemplateField>
            <ItemTemplate>
               <asp:Textbox ID="TextBox1" runat="server"></asp:TextBox>
               <asp:Button ID="Button1" runat="server" Text="Button" onclick=showText(); return false; />
            </ItemTemplate>
           </asp:TemplateField>
         </Columns>
        </asp:GridView>
        </td>
       </tr>
      </table>
     </ItemTemplate>
   </asp:TemplateField>
 </Columns>
</asp:GridView>

我正在使用的JQuery

function showText() {            
            var text= $("#TextBox1").val();
            alert(text);
            return false;
        }

我在stackoverflow中发现了一个确切的问题,但我的问题没什么不同,因为我想通过使用JQuery而不是C#编码来获取嵌套gridview中的文本框值

2 个答案:

答案 0 :(得分:0)

web.config添加clientIDMode,如下所示:

<pages clientIDMode="Static"></pages>

然后:

$(function() {
    $("#Button1").click(function(e) {
         e.preventDefault();
         alert($("#TextBox1").val());
    });
});

答案 1 :(得分:0)

您可以尝试:

<asp:TemplateField>
    <ItemTemplate>
        <asp:TextBox ID="TextBox1" runat="server" />
        <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="showText(this); return false;" />
    </ItemTemplate>
</asp:TemplateField>

使用以下showText函数,该函数在与单击的按钮相同的表格单元格中查找文本框:

function showText(btn) {
    alert($(btn).closest('td').find('input[type=text]').val());
}


更新

根据您的other question,文本框和按钮可以位于div容器内。如果是这种情况,函数showText应为:

function showText(btn) {
    alert($(btn).closest('div').find('input[type=text]').val());
}