我在网格中显示的数据如下:
开始日期结束日期按钮
16/3/2013 17/3/2013 注册--->这是一个 ASP 按钮
18/3/2013 19/3/2012 注册---->这是一个 ASP 按钮
20/3/2012 20/3/2012 注册---->这是一个 ASP 按钮
当我单击第一行注册按钮时,我想要带有 c# 代码的 asp.net,我想获取第一行的数据。如果单击第二行,我只想要第二行开始日期和结束时间的数据。我怎样才能做到这一点?请在这方面帮助我。
我在网格中显示的数据如下:
开始日期结束日期按钮
16/3/2013 17/3/2013 注册--->这是一个 ASP 按钮
18/3/2013 19/3/2012 注册---->这是一个 ASP 按钮
20/3/2012 20/3/2012 注册---->这是一个 ASP 按钮
当我单击第一行注册按钮时,我想要带有 c# 代码的 asp.net,我想获取第一行的数据。如果单击第二行,我只想要第二行开始日期和结束时间的数据。我怎样才能做到这一点?请在这方面帮助我。
在 asp 按钮中,设置属性: CommandName="SignUp" CommandArgument='<%# Container.DataItemIndex%>'
现在,当单击此按钮时,它会调用 Gridview 的 RowCommand 事件
在那种情况下, e.CommandArgument 包含您的行号。
GridViewRow gvr= gvLinkImages.Rows[e.CommandArgument];
现在您可以使用 gvr.Cells[column number] 获取特定文本(不推荐)或使用 findcontrol 获取开始/结束日期的标签或文字(假设您使用的是 Templatefields)下面的示例代码
C#
protected void gvResults_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "SignUp")
{
int rwNumber = Convert.ToInt32(e.CommandArgument);
GridViewRow gvr = gvResults.Rows(rwNumber);
System.DateTime rowStartDate = default(System.DateTime);
System.DateTime rowEndDate = default(System.DateTime);
//If you are using Templatefields
Literal lblRowStartDate = gvr.FindControl("lblStartDate") as Literal;
Literal lblRowEndDate = gvr.FindControl("lblEndDate") as Literal;
rowStartDate = Convert.ToDateTime(lblRowStartDate.Text);
rowEndDate = Convert.ToDateTime(lblRowEndDate.Text);
//Incase you are not using TemplateFields or Autobinding your grid
rowStartDate = Convert.ToDateTime(gvr.Cells[0].Text);
rowEndDate = Convert.ToDateTime(gvr.Cells[1].Text);
}
}
ASPX
<asp:GridView runat="server" ID="gvResults" AutoGenerateColumns="false" OnRowCommand="gvResults_RowCommand">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Literal runat="server" ID="lblStartDate" Text='<%#Container.DataItem.StartDate%>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Literal runat="server" ID="lblStartDate" Text='<%#Container.DataItem.EndDate%>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Button runat="server" ID="btnSignUp" CommandName="SignUp" CommandArgument="<%# Container.DataItemIndex %>" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>