javascript - 使用 jquery 访问 gridview 内的隐藏字段并更新它?

标签 javascript jquery asp.net

我在asp.net中有一个gridview 其中一个字段是 gridview 内部的隐藏字段:

 <asp:TemplateField>
                                 <ItemTemplate>
                                      <input type="hidden" value="0" id="hdnIsChanged" runat="server" />
                                 </ItemTemplate>
                            </asp:TemplateField>

我在 GridView 内也有一个单选按钮列表,其中有一个正在运行的 jquery 单击事件... 这是该事件:

$("#MainContent_gvLineItems input[id*='rbAnswer']").click(function () {
                    var parentRow = $(this).parents('tr').eq(1) //used to get the row at index 1, parents('tr').length prints 3.  
                    //tr around the checkbox is index 2
                    //tr around row is index 1
                    //tr around header is index 0
                    //so we want to get a reference to index=1
                    var firstCell = parentRow.find('td:eq(0)'); //find the first cell
                    var p = $(this).parents("div[id='dMainAnswer']").find(".Answer:first"); //used to find the panel
                    var val = $(this).val();

                    switch (val) //check the value 
                    {
                        case 'No':
                            firstCell.css('background-color', 'red');
                            p.show();
                            break;
                        case 'Yes':
                            firstCell.css('background-color', 'green');
                            p.hide();
                            break;
                        case 'N/A':
                            firstCell.css('background-color', 'gray');
                            p.hide();
                            break;
                        default:
                            firstCell.css('background-color', 'transparent');
                            p.show();
                            break;
                    }
                });

这一切都很好,但是在这个点击事件中我想访问隐藏字段hdnIsChanged我如何引用它?我尝试过:

alert($('input[id$=hdnAnswered').val());

但它仍然显示未定义... 我希望能够在此点击事件中访问它并使用jquery为其设置一个值。 请记住它位于 gridview 内,因此它会出现在每一行中...

感谢任何帮助。

最佳答案

我个人会为您的隐藏字段分配一个类,并尝试像这样访问它:

$(this).closest(".myClass");

请记住,由于这是一个服务器控件,因此该隐藏字段的 ID 很可能会以一堆 asp.net 垃圾开头。所以不要像这样渲染:

<input type="hidden" value="0" id="hdnIsChanged" />

它很可能会像这样呈现:

<input type="hidden" value="0" id="clt100_clt100_290420349823049823423_hdnIsChanged" />

关于javascript - 使用 jquery 访问 gridview 内的隐藏字段并更新它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12097003/

相关文章:

c# - 使用 JQuery Ajax 和 ASP.NET 通用处理程序时必须采取的除 XSS 和 CSRF 预防之外的安全措施

asp.net - 具有长时间运行的同步请求的 ASP.NET 应用程序的注意事项

javascript - 多光谱调色板

javascript - jQuery何时输出promise对象而不是结果

函数内的 Jquery 数学

jquery - 哪个 jQuery 选择器更高效?

javascript - JavaScript 中不赋值的对象返回

javascript - 我们需要在生产结束时捆绑我们的 js 文件吗

forms - 表单仍会在 PreventDefault 上提交

c# - 在另一个用户控件中使用一个用户控件的自定义事件?