如何在asp.net数据网格中重命名具有if条件的绑定行元素

本文关键字:if 条件 元素 绑定 重命名 asp net 数据 网格 数据网 | 更新日期: 2023-09-27 18:08:36

我在asp.net .net框架4中工作,我有一个数据网格,它有一个列值1,2,3等,我想在与if条件绑定期间重命名它们,例如,如果值为1显示YES,如果值为2,显示NO,就像那样…我知道网格有一个事件数据绑定,但我不知道如何在此事件中根据条件改变单元格的值,请帮助。

谢谢爱迪

如何在asp.net数据网格中重命名具有if条件的绑定行元素

  1. 使用条件内联在.aspx:

    <%# ((int)Eval("Property")) == 0 ? "No" : "Yes" %>
    
  2. 使用at codebehind方法来格式化value:

    <%# FormatMyValue(Container.DataItem) %>
    

    cs

    public string FormatMyValue(object value)
    {
        return ((MyDataType)value).Property == 0 ? "No" : "Yes";
    }
    
  3. 在代码隐藏中使用RowDataBound事件(不优雅,但应该可以工作):

    protected void Page_Load(object sender, EventArgs e)
    {
        this.GridView1.RowDataBound += new GridViewRowEventHandler(GridView1_RowDataBound);
    }
    void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            // get date item
            MyDataType item = (MyDataType)e.Row.DataItem;
            // Set value in the necessary cell. You need to specify correct cell index.
            e.Row.Cells[1].Text = item.Property == 0 ? "No" : "Yes"; ;
        }
    }