2017-02-06 10 views
0

データテーブルを使用してasp.netの列の値を変更したいと思います。たとえば、列に値0が含まれている場合は、0ではなくメッセージを表示したいと思います。ここにコードがあります。asp.netの列の値を置き換える方法

if (!this.IsPostBack) 
{ 
    DataTable dt = this.GetData(); 
    StringBuilder html = new StringBuilder(); 

    html.Append("<table class='table table-hover'>"); 
    html.Append("<tr>"); 
    foreach (DataColumn column in dt.Columns) 
    { 
     html.Append("<th style='text-align: center;'>"); 
     html.Append(column.ColumnName); 
     html.Append("</th>"); 
    } 
    html.Append("</tr>"); 

    foreach (DataRow row in dt.Rows) 
    { 
     html.Append("<tr style='text-align: center;'>"); 
     foreach (DataColumn column in dt.Columns) 
     { 
      html.Append("<td>"); 
      html.Append(row[column.ColumnName]); 
      html.Append("</td>"); 
     } 
     html.Append("</tr>"); 
    } 

    html.Append("</table>"); 
    PlaceHolder1.Controls.Add(new Literal { Text = html.ToString() }); 
} 

ここは、私がウェブページで取得しているレコードです。

Output Image

+0

、これを試してみてください。特定のブロッカー? – Andrei

+0

私はあなたが言ったことを理解していません –

答えて

1

あなたはDataTableデータとHTMLを生成している状態を置くことができます。 DataTableのセルの値が ""の場合は、任意の文字列で置き換えることができます。 "ゼロ値"の例を以下に示す。

foreach (DataColumn column in dt.Columns) 
{ 
    html.Append("<td>"); 
    if(row[column.ColumnName].ToString() != "0") 
     html.Append(row[column.ColumnName]); 
    else 
     html.Append("Zero Value"); 
    html.Append("</td>"); 
} 

編集 OPのコメントに基づいて、if文でColumnNameを上にもう1つの条件を追加します。

if(column.ColumnName == "status" && row[column.ColumnName].ToString() == "pending") 
+1

"ステータス"値と呼ばれる列名がゼロであることを確認してから "保留中"を表示したいのですが –

+0

if文の条件に追加できます。 – Adil

+0

はい、@WaleedIkhlaqは、カラム名が "status"かどうかを比較する必要があります。ステータスの場合は、値が「ゼロ」であるかどうかをチェックします。 'html.Append(" Zero Value ");の代わりに' html.Append( "Pending");を表示することができます。 – Prabhat

0

ゼロが含まれているかどうかを確認するだけですか?

foreach (DataColumn column in dt.Columns) 
{ 
    html.Append("<td>"); 
    html.Append(column.ColumnName == "status" 
     ? (row[column.ColumnName].ToString() != "0" 
      ? row[column.ColumnName].ToString() 
      : "Pending") 
     : row[column.ColumnName].ToString()); 
    html.Append("</td>"); 
} 

可能であれば、SQLサーバーからISNULL関数を使用することもできます。

+0

この行はすべてのレコードを保留中にします –

+0

@WaleedIkhlaq –

1

は、あなたがまだ置き換えコードを持っていないように見えます

foreach (DataColumn column in dt.Columns) 
{ 
    html.Append("<td>"); 
    if (row[column.ColumnName].ToString() != "status" && row[column.ColumnName].ToString() != "0") 
    html.Append(row[column.ColumnName]); 
    else 
    html.Append("Pending"); 
    html.Append("</td>"); 
} 
関連する問題