如何在不干扰其他边界的情况下将数据绑定到linkbutton?

时间:2015-05-12 10:48:14

标签: c# asp.net gridview hyperlink asplinkbutton

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

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

超链接控件中只有少数事件。 enter image description here

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

更新 Gird标记代码

<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>

根据this solution here

尝试了一个链接按钮
<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事件。

1 个答案:

答案 0 :(得分:0)

在GridView中放置一个LinkBut​​ton,然后使用&#34; RowCommand&#34;设定应该发生什么的行动。单击链接后,将立即调度名为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
    }
}