我正在显示包含多个数据条目的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()
一切正常,但我不知何故需要将该日期字段设为链接按钮,任何想法?
答案 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") %>'/>