如何在asp.net HyperLink列中创建动态数据文本字段?

时间:2013-04-29 04:50:02

标签: c# asp.net

这是我的数据网格:

<asp:DataGrid id="dataGrid1" runat="server">
    <Columns>
        <asp:HyperLinkColumn DataNavigateUrlField="Valid" 
         DataTextField="Valid" 
          HeaderText="Enable / Disable"
         DataNavigateUrlFormatString="~\examfilemanager\{0}" />
      </Columns>
</asp:DataGrid>

我想要自定义DataTextField,显示Enable的值是trueDisable如果值是false,我该怎么办?在HyperLinkColumn中添加此逻辑?谢谢。

2 个答案:

答案 0 :(得分:1)

请更改ItemDataBound事件

中的文字
protected void dataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
{
    if (e.Item.Cells[0].Controls.Count > 0)
    {
        HyperLink hypLnk = (HyperLink)e.Item.Cells[0].Controls[0];
        if (hypLnk != null)
        {
            if (hypLnk.Text == "False")
                hypLnk.Text = "Enable";
            else
                hypLnk.Text = "Disable";
        }
    }
}

数据网格html

<asp:DataGrid id="dataGrid1" runat="server" OnItemDataBound="dataGrid1_ItemDataBound">
    <Columns>
        <asp:HyperLinkColumn DataNavigateUrlField="Valid" 
         DataTextField="Valid" 
          HeaderText="Enable / Disable"
         DataNavigateUrlFormatString="~\examfilemanager\{0}" />
      </Columns>
</asp:DataGrid>

答案 1 :(得分:0)

<asp:HyperLink ID="hl1" NavigateUrl='<%# String.Format("uri.aspx?id={0}",Eval("id")) %>'
runat="server">Edit</asp:HyperLink>

如果您更喜欢HyperLink列

,请使用以下内容
    <Columns>
        <asp:HyperLinkColumn
             HeaderText="Enable /Disable"
             DataNavigateUrlField="IntegerValue"
             DataNavigateUrlFormatString="examfilemanager.aspx?id={0}"
             DataTextField="Id"
             DataTextFormatString="{0:c}"
             Target="_blank"/>
     </Columns>