0

页面中的网格视图很少。第一个 gridview 是可编辑的,第二个不是。第一个 gridview 有一列有一个超链接(链接按钮)。第二个表应该基于上述超链接的点击事件加载。这就像期望超链接表现得像一个按钮。这可以做到吗?

为了尝试,我不知道从哪里开始。我向第一个 gridview 列添加了一个超链接。但是为 NavigationURL 设置什么对我来说是值得怀疑的。

超链接控件中只有少数事件。 在此处输入图像描述

这些似乎都不能满足我的需要。任何教程都是有价值的。

更新: 网格标记代码

<div id="schedule">
    <asp:GridView ID="gvSchedule" 
        runat="server" AutoGenerateColumns="false" 
        CssClass="Grid" 
        DataKeyNames="Employee ID, WOY, Location" 
        ShowHeader="false" 
        RowStyle-CssClass="rowstyle"
        onrowdatabound="gvSchedule_RowDataBound">
    <Columns>
 <asp:BoundField HeaderText="Staff" 
     DataField="E_Name" SortExpression="E_Name"  
     ItemStyle-Width="113" />
    </Columns>

    </asp:GridView>
    <br />
</div>

根据这个解决方案在这里尝试了一个链接按钮

<asp:TemplateField HeaderText="StaffClick" SortExpression="STOCK NO" ItemStyle-Width="50">
        <ItemTemplate>
           <asp:LinkButton ID="lblStaff" runat="server">Click</asp:LinkButton>
        </ItemTemplate>
        <HeaderStyle BackColor="Black" ForeColor="White" HorizontalAlign="Left"/>
        <ItemStyle HorizontalAlign="Left" />
        </asp:TemplateField>

使用此代码后,现在所有带有复选框的字段都没有加载 rowbound 事件。

4

1 回答 1

0

在您的 GridView 中放置一个 LinkBut​​ton,并使用“RowCommand”操作来设置应该发生的事情。一旦点击链接,就会调度一个名为 RowCommand 的事件。您可以处理服务器端发生的任何事情。

CommandArgument 可以是您想要传递给服务器端函数的任何内容。

这是一个例子:

 <asp:Button ID="btnViewmore"  
        CommandArgument="<%# ((GridViewRow) Container).RowIndex %>
        " CommandName="More" runat="server" Text="View More" />

在服务器端你可以这样做(C#):

protected void gridMembersList_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "More")
    {
        int index = Convert.ToInt32(e.CommandArgument.ToString());
        // do something with your command and commandargument, like for instance, update the second gridview
    }
}  
于 2015-05-12T11:31:08.330 回答