2009-12-07 82 views
0

我在ASP.Net中工作,我將數據庫中的狀態字段保存爲true或false。現在,我想在GridView的前端顯示true或false作爲Active或Inactive。如何在Gridview中顯示數據。在gridview中替換數據

在此先感謝。

回答

1

如果你問如何改變truefalseActiveInactive,你可以在你的SQL查詢中使用CASE聲明,就像這樣:

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

對於更具體的回答,請發表更多細節。

+0

你是對的! 需要更多的細節。 – 2009-12-07 14:19:14

0

使用複選框列顯示狀態字段。 (設置列禁用)

+0

這看起來不錯,因爲它可以節省空間,但很多管理員/助理喜歡清楚地看到一行爲不活動/活動,而不是記住複選框的含義。處理這種情況的另一種方法是,如果它處於活動狀態,則將行亮綠色,如果它處於非活動狀態,則將其亮綠色 – JonH 2009-12-07 14:22:57

+0

是的,您可以設置數據綁定事件中的行顏色。這是更友好的用戶。 (即綠色 - 活性,紅色 - 活性 – 2009-12-07 15:28:38

3

另一種方法是使用你的DataGrid的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 
0

如果你知道你想要的單元格位置過濾數據,您也可以在GridView 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"; 
     } 
    } 

這是我用來查找和替換gridview中的文本。

0

如果您正在使用模板字段,那麼你可以創建服務器端功能以及評估和演示調用像下面

<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"; 
      } 
     }