0

我正在开发一个 asp.net 网站我用 gridview 创建了一个模板,我在模板中放了一个按钮,我想通过单击 Row ID 按钮浏览到另一个页面。我需要你的帮助

   <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="SqlDataSource2" CellPadding="4" ForeColor="#333333" GridLines="None" Width="100%" OnRowCommand="GridView1_RowCommand"  >
                <AlternatingRowStyle BackColor="White" />
                <Columns>
                    <asp:TemplateField>
                        <AlternatingItemTemplate>
                            <table class="nav-justified">
                                <tr>
                                    <td class="auto-style5" dir="rtl" style="text-align: justify; vertical-align: top">
                                        <asp:Image ID="Image7" runat="server" ImageUrl='<%# "~/images/"+(string)Eval("img") %>' Width="150px" />
                                    </td>
                                    <td class="auto-style6" dir="rtl" style="text-align: justify; vertical-align: top">&nbsp;</td>
                                    <td dir="rtl" style="text-align: justify; vertical-align: top">
                                        <table class="nav-justified">
                                            <tr>
                                                <td>
                                                    <asp:Label ID="Label1" runat="server" Text='<%# (string)Eval("onvan") %>'></asp:Label>
                                                </td>
                                            </tr>
                                            <tr>
                                                <td>
                                                    <asp:Label ID="Label2" runat="server" Text='<%# Eval("comment").ToString().Length<=100?Eval("comment"):Eval("comment").ToString().Substring(0,100) %>'></asp:Label>
                                                </td>
                                            </tr>
                                        </table>
                                    </td>
                                </tr>
                                <tr>
                                    <td class="auto-style5">&nbsp;</td>
                                    <td class="auto-style6">&nbsp;</td>
                                    <td dir="rtl" style="vertical-align: top; text-align: justify">
                                        <asp:Label ID="Label3" runat="server" Text='<%# Eval("datetime") %>'></asp:Label>
                                    </td>
                                </tr>
                                <tr>
                                    <td class="auto-style5">
                                        <asp:Button ID="Button1" runat="server" CssClass="btn" Text="Button" />
                                    </td>
                                    <td class="auto-style6">&nbsp;</td>
                                    <td>&nbsp;</td>
                                </tr>
                            </table>
                        </AlternatingItemTemplate>
                        <ItemTemplate>
                            <table class="nav-justified">
                                <tr>
                                    <td class="auto-style3" dir="rtl" style="text-align: justify; vertical-align: top">
                                        <asp:Image ID="Image8" runat="server" ImageUrl='<%# "~/images/"+(string)Eval("img") %>' Width="150px" />
                                    </td>
                                    <td class="auto-style4" dir="rtl" style="text-align: justify; vertical-align: top">
                                        &nbsp;</td>
                                    <td dir="rtl" style="text-align: justify; vertical-align: top">
                                        <table class="nav-justified">
                                            <tr>
                                                <td>
                                                    <asp:Label ID="Label5" runat="server" Text='<%# (string)Eval("onvan") %>'></asp:Label>
                                                </td>
                                            </tr>
                                            <tr>
                                                <td>
                                                    <asp:Label ID="Label6" runat="server" Text='<%# Eval("comment").ToString().Length<=100?Eval("comment"):Eval("comment").ToString().Substring(0,100) %>'></asp:Label>
                                                </td>
                                            </tr>
                                        </table>
                                    </td>
                                </tr>
                                <tr>
                                    <td class="auto-style3">&nbsp;</td>
                                    <td class="auto-style4">&nbsp;</td>
                                    <td dir="rtl" style="vertical-align: top; text-align: justify">
                                        <asp:Label ID="Label4" runat="server" Text='<%# Eval("datetime") %>'></asp:Label>
                                    </td>
                                </tr>
                                <tr>
                                    <td class="auto-style3">
                                        <asp:Button ID="Button2" runat="server" CommandArgument="<%# ((GridViewRow) Container).RowIndex%>" CommandName="nav" Text="Browse" CssClass="btn" />
                                    </td>
                                    <td class="auto-style4">&nbsp;</td>
                                    <td>&nbsp;</td>
                                </tr>
                            </table>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
                <EditRowStyle BackColor="#7C6F57" />
                <FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
                <HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
                <PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
                <RowStyle BackColor="#E3EAEB" />
                <SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
                <SortedAscendingCellStyle BackColor="#F8FAFA" />
                <SortedAscendingHeaderStyle BackColor="#246B61" />
                <SortedDescendingCellStyle BackColor="#D4DFE1" />
                <SortedDescendingHeaderStyle BackColor="#15524A" />


     </asp:GridView>
4

3 回答 3

0

--> 在 GridView 中添加 OnRowDataBound 方法。
--> 并在您的 C# 页面中编写代码。

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
       if (e.Row.RowType == DataControlRowType.DataRow)
         {
             if (Convert.ToDecimal(DataBinder.Eval(e.Row.DataItem, "ID")) > 0)
               {
                   响应。重定向(链接);
               }

    }
}
于 2016-06-10T17:48:15.060 回答
0

我假设您将 gridview 行索引作为参数传递,<%# Container.DataItemIndex%>用于获取 gridview 的行索引,以及您的 ButtonCode

 <asp:Button ID="Button2" runat="server" CommandArgument="<%# Container.DataItemIndex %>" CommandName="nav" Text="Browse" CssClass="btn" />

记住行索引总是从 0 开始,<%# Container.DataItemIndex + 1 %>如果你想从 1开始使用

于 2016-06-10T12:11:50.003 回答
0

您可以使用 LinkBut​​ton 而不是按钮,并使用以下问题中的命令: How to get selected row field from gridview in asp.net 我认为这可以帮助您。

于 2016-06-10T11:56:30.783 回答