想在gridview上创建一个链接按钮的日期字段?

时间:2013-01-10 19:40:20

标签: asp.net vb.net gridview datatable linkbutton

我正在显示包含多个数据条目的gridview,其中一个数据字段是date,我希望用户能够单击gridview上的任何日期,并使用它在同一页面上启动进程,其中包括隐藏gridview并显示有关该特定日期,没有插入,更新或任何数据库相关的一般信息,只显示对进程的调用。通过从日历中选择并单击常规按钮,可以手动完成同样的操作。

如何将此字段仅设为链接按钮?

我已经尝试过这样在ASP上手动添加字段:

<asp:GridView ID="myGrid" runat="server" CssClass="Gridview">
 <Columns>
  <asp:HyperLinkField Text="test"  />
 </Columns>
</asp:GridView>

但它只创造了一个我不需要的新领域。此外,它必须在代码隐藏时完成,因为我正在创建数据表,后来将其发送到gridview,如下所示:

Dim myTable As DataTable = New DataTable
Dim column As DataColumn
Dim row As DataRow

column = New DataColumn()
column.ColumnName = "ID"
myTable.Columns.Add(column)

column = New DataColumn()
column.ColumnName = "Date"
myTable.Columns.Add(column)

For myRow As Integer = 0 To days
 row = myTable.NewRow()
 row("ID") = "Some ID"
 row("Date") = datevalue.AddDays(myRow).ToString("dd/MM/yyyy")
 myTable.Rows.Add(row)
Next

myGrid.DataSource = myTable
myGrid.DataBind()

一切正常,但我不知何故需要将该日期字段设为链接按钮,任何想法?

1 个答案:

答案 0 :(得分:1)

你应该使用TemplateField。

<Columns>
  <asp:TemplateField>
     <ItemTemplate>
        <asp:LinkButton id="LinkButton1" Text="Click Me"            OnClick="LinkButton_Click" runat="server"/>
      </ItemTemplate>
     </asp:TemplateField>
</Columns>

代码隐藏:

void LinkButton_Click(Object sender, EventArgs e) 
{
   // Insert your code
}

您可能希望根据单击按钮的行获取特定信息。您可以使用Button并将CommandArgument设置为标识符:

<asp:Button ID="Button1" runat="server" Text="Click me"  CommandArgument='<%#Eval("YourColumn") %>'/>