【问题标题】:data replacing in gridview网格视图中的数据替换
【发布时间】:2009-12-07 14:11:16
【问题描述】:

我在 ASP.Net 中工作,我将数据库中的状态字段保存为真或假。现在,我想在 GridView 的前端将 true 或 false 显示为 Active 或 Inactive。如何在 Gridview 中显示数据。

提前致谢。

【问题讨论】:

    标签: c# asp.net sql-server gridview


    【解决方案1】:

    另一种方法是使用数据网格的 RowDataBound 事件将其转换为活动/非活动字符串:

      Protected Sub gvRequests_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvRequests.RowDataBound
            If e.Row.RowType = DataControlRowType.DataRow Then
                Dim lbl As Label = CType(e.Row.FindControl("lblStatus"), Label)
                If lbl.Text="1" then
                       lbl.Text="Active"
                else
                       lbl.Text="Inactive"
                end if
            end if
      end sub
    

    【讨论】:

      【解决方案2】:

      如果您询问如何将 truefalse 更改为 ActiveInactive,您可以在 SQL 查询中使用 CASE 语句,如下所示:

      SELECT CASE Status WHEN 1 THEN 'Active' WHEN 0 THEN 'Inactive' END FROM Something
      

      如需更具体的答案,请发布更多详细信息。

      【讨论】:

        【解决方案3】:

        使用复选框列显示状态字段。 (将该列设置为禁用)

        【讨论】:

        • 这在视觉上很不错,因为它可以节省空间,但是很多管理员/助理喜欢清楚地看到一行是非活动/活动的,而不是记住复选框的含义。处理此问题的另一种方法是,如果该行处于活动状态,则将其着色为浅绿色/如果它处于非活动状态,则将其着色为浅红色。
        • 是的,您可以在数据绑定事件中设置行颜色。这对用户更友好。 (即Green-Active,Red-InActive
        【解决方案4】:

        如果您知道要过滤数据的单元格位置,也可以在 gridviews RowDataBound 事件中执行此操作。

        protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
            {
                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    if (e.Row.Cells[2].Text == "1")
                        e.Row.Cells[2].Text = "True";
                    else
                        e.Row.Cells[2].Text = "False";
                }
            }
        

        这是我用来在网格视图中查找和替换文本的方法。

        【讨论】:

          【解决方案5】:

          如果您使用的是模板字段,那么您可以创建服务器端函数并调用 Eval,如下所示

          <asp:TemplateField>
              <ItemTemplate>
                  <asp:Label ID="lblstatus" runat="server" Text='<%# GetStatusText(Eval("status")) %>'></asp:Label>
              </ItemTemplate>
          </asp:TemplateField>
          
          
          
          
          public string GetStatusText(string strIsActive)
                  {
                    bool val = Boolean.Parse(strIsActive);
                    if(val)
                    { 
                       return "Active";
                    }
                    else
                    { 
                       return "Inactive";
                    }
                  }
          

          【讨论】:

            猜你喜欢
            • 2014-08-07
            • 1970-01-01
            • 1970-01-01
            • 2015-09-27
            • 1970-01-01
            • 1970-01-01
            • 2015-06-23
            • 1970-01-01
            • 2019-08-24
            相关资源
            最近更新 更多