0

我正在显示一个带有多个数据条目的网格视图,其中一个数据字段是日期,我希望用户能够单击网格视图上的任何日期,并使用它在同一页面上启动一个进程,其中包括隐藏 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()

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

4

1 回答 1

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") %>'/>
于 2013-01-10T20:11:48.070 回答