页面中的网格视图很少。第一个gridview是可编辑的,第二个不是。第一个gridview有一个具有超链接的列(linkbutton)。应根据上述超链接的点击事件加载第二个表。这就像期望超链接表现得像一个按钮。可以这样做吗?
为了尝试,我不知道从哪里开始。我添加了第一个gridview列的超链接。但是为NavigationURL设置的内容对我来说是值得怀疑的。
超链接控件中只有少数事件。
这些似乎都不能满足我的需要。任何教程都很有价值。
更新 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>
尝试了一个链接按钮
<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事件。
答案 0 :(得分:0)
在GridView中放置一个LinkButton,然后使用&#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
}
}