jQuery单击母版页中的gridview行

时间:2011-04-02 20:43:15

标签: jquery asp.net gridview

我一直试图弄清楚如何允许用户在母版页中单击gridview中的行。最终,我希望将用户重定向到另一个页面,其中gridview(hiddenfield列)中的值将成为重定向到的页面的查询字符串值。

这一点我只能进入gridview本身。我无法从gridview获取行或单元格。

    <script type="text/javascript">
    $(document).ready(function () {
        $('[id$=LeagueGV]').click(function() { alert('gridview  clicked'); });
        //window.location = "/League_Admin.aspx?LID=" + $(this).find('LeagueHidden').value();
        //});
    });
</script>

<asp:GridView runat="server" ID="LeagueGV" DataKeyNames="LeagueID" >
            <Columns>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:HiddenField runat="server" ID="LeagueHidden" Value='<%# Eval("LeagueID") %>' />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:Label runat="server" ID="LeagueIDLabel" Text='<%#Eval("LeagueID") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="LeagueName" HeaderText="League Name" />
            </Columns>
        </asp:GridView>

1 个答案:

答案 0 :(得分:2)

你有什么问题。首先,您的GridView的ID不会呈现为“LeagueGV”,隐藏的字段也不会是“LeagueHidden”。它将被破坏成为其父NamingContainer的ID链的一部分。

其次,使用ID的jQuery语法可以像$('#yourId')一样简单。你正在使用的语法是旧的。

第三,我不建议将点击事件添加到tabletr。这不是许多用户的预期行为,可能会令人困惑。

除非您希望使用不引人注目的Javascript,否则我的第一个建议是HyperLinkField而不是TemplateField,那么您可以覆盖{{1}的OnDataBound事件在呈现包含LeagueID的链接时,向链接添加GridView属性。