【发布时间】:2014-02-21 09:23:48
【问题描述】:
我的网页中有一个 GridView。它以 Status、Name、Id 和 Action 列显示数据。我的状态栏总是随机填充 3 个值(Complete、Queued 和 Failed)。
现在我想将此状态列值显示为链接,如果它的值是“失败”或“排队”。但“完成”状态不应显示为链接。
如何在运行时实现此设计?
我将数据绑定到网格的代码是,
protected void Page_Load(object sender, EventArgs e)
{
DataTable dtActionList = clsactionList.GetADActionList();
grdADActionList.DataSource = dtActionList;
grdADActionList.DataBind();
}
protected void grdADActionList_RowDataBound(object sender, GridViewRowEventArgs e)
{
foreach (GridViewRow gvr in grdADActionList.Rows)
{
if ((gvr.FindControl("Label1") as Label).Text == "Completed")
{
(gvr.FindControl("Label1") as Label).Visible = true;
(gvr.FindControl("HyperLink1") as HyperLink).Visible = false;
}
}
}
使用此代码我只是简单地绑定网格中的值。我无法根据该状态列的绑定值将状态列创建为具有链接按钮。
我的 .aspx 代码是:
<asp:GridView ID="grdADActionList" runat="server" Height="83px" Width="935px" AutoGenerateColumns="false" OnRowDataBound="grdADActionList_RowDataBound">
<Columns>
<asp:TemplateField HeaderText="Status" SortExpression="Status">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='http://localhost:52807/Default.aspx?'><%# Eval("Status") %>
</asp:HyperLink>
<asp:Label ID="Label1" runat="server" Text="<%# Container.DataItem %>" Visible="False"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="GivenName" HeaderText="GivenName"/>
请帮我进一步做这件事......
【问题讨论】:
-
grdActionList的标记是什么样的? -
@Andrei:你是说网格的设计吗?
-
是的。 Grid相关的aspx文件内容
-
它只是一个网格,取自工具并与其中的 Datatable 值绑定....如何根据单元格值创建模板列作为链接
-
现在您的所有列都是自动生成的。如果您对默认网格外观没问题,这很好,但是当您需要自定义时,您应该切换到手动列声明
标签: c# asp.net gridview hyperlink