1

totalcomplete変数をgridProgressにあるlblCompleteにバインドしたいのですが、その方法がわかりません。誰か助けてもらえますか?

ASPコード:

<asp:GridView ID="gridProgress" runat="server" AutoGenerateColumns="False">
    <Columns>
       <asp:TemplateField HeaderText="Complete">
          <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Width="10%" />
          <HeaderStyle HorizontalAlign="Center" />
          <ItemTemplate>
              <asp:Label ID="lblComplete" runat="server"></asp:Label>
          </ItemTemplate>
      </asp:TemplateField>
    </Columns>
</asp:GridView>

C#コード:

da = new SqlDataAdapter(sql, oConn);
da.Fill(ds);


//count number of tasks completed, not completed
int count = ds.Tables[0].Rows.Count;
string value = ds.Tables[0].Rows[0]["Completed"].ToString();
int completed = 0;
for (int i = 0; i < count; i++)
{
   if (value == "No")
   {
       completed++;
   }                
   int totalcomplete = completed;
   //here i want to bind totalcomplete to my lblCompleted
}
4

3 に答える 3

1

FindControlのプロパティを使用しますGridview

Label lbl = gv.Rows[rowIndex].FindControl("lblComplete") as Label;
lbl.Text = Convert.ToString(totalcomplete); 
于 2013-03-22T14:46:48.087 に答える
1

あなたの質問は明確ではありません。
totlalCompleteを各行に表示しますか、
それとも他の場所に表示しますか?
gridview内にテンプレートフィールドがある
ので、すべての行にレンダリングされます

そして、あなたのループも奇妙
ですそれは次のようになるはずです

int count = ds.Tables[0].Rows.Count;
int completed = 0;
for (int i = 0; i < count; i++)
{
   string value = ds.Tables[0].Rows[i]["Completed"].ToString();
   if (value == "No")
   {
      completed++;
   }                
   int totalcomplete = completed;
   //here i want to bind totalcomplete to my lblCompleted
}

編集1


これは、GridViewのフッターに合計を表示し、最後の列に列の合計(行バイス)を追加 するのに役立つリンクです
http://csharpdotnetfreak.blogspot.com/2009/07/display-total-in-gridview-footer .html

于 2013-03-22T14:50:32.740 に答える
0

使用できます DataBinder.Eval method

Text='<%# DataBinder.Eval(Container.DataItem,"totalcomplete") %>'
于 2013-03-22T14:32:08.660 に答える