-1

重複の可能性:
日付を表示するときにGridViewに時刻が表示されないようにするにはどうすればよいですか?

「合計」という列に負の数のグリッドビューがあります。すべての負の数を角かっこで囲みます。

例えば

Total
76  
(-66)
646  
(-76)  
(-10)  
(-6) 
16  
676

ASP.NETをC#で使用していますが、どうすればよいですか。

または、SQLクエリで実行できますか。グリッドビューはSQLデータソースを介して入力されているため。

4

3 に答える 3

1

この簡単な例を見てください。私はGridviewを使用しています:

C#

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        List<int> x = new List<int>() { 76, -66, 646, -76, -10, -6, 16, 676 };
        this.GridView1.DataSource = x;
        this.GridView1.DataBind();
    }
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            if (Convert.ToInt32(e.Row.Cells[0].Text) < 0)
            {
                e.Row.Cells[0].Text = "(" + e.Row.Cells[0].Text + ")";
            }
        }

    }
}

出力:

Item
76
(-66)
646
(-76)
(-10)
(-6)
16
676

幸運を

編集:SQLの出力を変更して、このためだけに機能させることはしません。

于 2012-12-05T21:46:54.630 に答える
1

Hanlet Escanoに似たようなことをしますが、解析する代わりに、次のようにデータオブジェクトをケースに入れます。

Default.aspx

<asp:GridView ID="gvGrid" runat="server" AutoGenerateColumns="false" OnRowDataBound="gvGrid_RowDataBound">
  <Columns>
    <asp:TemplateField>
      <ItemTemplate>
        <asp:Literal ID="litData" runat="server" />
      </ItemTemplate>
    </asp:TemplateField>
  </Columns>
</asp:GridView>

Default.aspx.cs

protected void Page_Load(object sender、EventArgs e){if(!IsPostBack){//データの生成var data = new List(){76、-66、646、-76、-10、-6、16、676};

      gvGrid.DataSource = data;
      gvGrid.DataBind();
    }
  }

  protected void gvGrid_RowDataBound(object sender, GridViewRowEventArgs e)
  {
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
      //Strongly Type Controls
      var litData = (Literal)e.Row.FindControl("litData");

      //Strongly Type Data
      var data = (int)e.Row.DataItem;

      //Display Data
      if (data < 0)
      {
        litData.Text = "[" + data.ToString() + "]";
      }
      else
      {
        litData.Text = data.ToString();
      }
    }
  }

これにはいくつかの利点があります。データはすでにネイティブ形式(int)で保存されており、オブジェクト変数に含まれているだけです。

次に、将来、より複雑なデータオブジェクト(Person / Business / Foo / Barオブジェクト)で複数の列を処理する必要がある場合は、これと同じ手法を使用できます。

于 2012-12-05T21:57:23.293 に答える
0

グリッドビューのonRowDataBoundイベントを使用して、セルを必要に応じて更新し、角かっこなどを追加します:)

見てみな:

http://www.dotnetfunda.com/forums/thread9403-get-the-particular-value-in-gridview-using-rowdatabound-in-csharpnet.aspx

于 2012-12-05T21:43:08.707 に答える