3

つまり、基本的に、グリッドビューで表示したいデータベースからデータを取得しています。残念ながら、曜日は整数として格納されるため、月曜日は0、火曜日は1などになります。

基本的に、出力中のデータを変更して、数値を正しい曜日に変換するにはどうすればよいですか。

次のようなグリッドビューがあります。現時点では、onrowdataboundを使用して設定しています。

 <asp:GridView ID="GridView1" runat="server" AllowSorting="True" 
                        AutoGenerateColumns="False" DataSourceID="SqlDataSource2" Width="721px"  
                        onrowdatabound="GridView_RowDataBound" 
                        >

次に、GridView_RowDataBoundの背後にあるコードは次のとおりです。

  protected void GridView_RowDataBound(Object sender, GridViewRowEventArgs e)
    {

        if (e.Row.RowType == DataControlRowType.DataRow)
        {

        }

    }

そこに正しいコードを入れるだけでいいと思います。ただし、何らかの理由で、特定の列のすべてのセルに対してのみ、単一のセルに対して何も実行できません。したがって、1つの列のすべてのセルを太字に変更することはできますが、セルを個別に変更することはできません。方法はあると思いますが、その方法を理解することはできません。

どんな助けでも大歓迎です!

ありがとう

        protected void GridView1_RowDataBound(Object sender, GridViewRowEventArgs e)
    {

        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            int days = (int)GridView1.Rows[e.Row.RowIndex].Cell[2].Text;
            if (days == 0) GridView1.Rows[e.Row.RowIndex].Cell[2].Text = "Monday";
            if (days == 1) GridView1.Rows[e.Row.RowIndex].Cell[2].Text = "Tuesday";
            if (days == 1) GridView1.Rows[e.Row.RowIndex].Cell[2].Text = "Wednesday";
            if (days == 1) GridView1.Rows[e.Row.RowIndex].Cell[2].Text = "Thursday";
            if (days == 1) GridView1.Rows[e.Row.RowIndex].Cell[2].Text = "Friday";

        }

    }
4

1 に答える 1

3

あなたはこれを試すことができます。

if (e.Row.RowType == DataControlRowType.DataRow)
{
     string days = e.Row.Cells[2].Text;
     if (days == "0") e.Row.Cells[2].Text = "Monday";
     if (days == "1") e.Row.Cells[2].Text = "Tuesday";
     if (days == "2") e.Row.Cells[2].Text = "Wednesday";
     if (days == "3") e.Row.Cells[2].Text = "Thursday";
     if (days == "4") e.Row.Cells[2].Text = "Friday";
}
于 2012-05-17T21:05:59.850 に答える