亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

根據條件獲取GridView的具體記錄

根據條件獲取GridView的具體記錄

C#
慕村9548890 2021-08-07 16:14:21
我試圖從網格視圖中獲取最后兩個值,不包括零價格的項目。網格視圖數據ITEMCODE    ITEMNAME       PRICE001         Ice Tea         5.0000002         Super Delux     12.0000003         Meditern Veg    0.0000004         Super  L        0.0000005         Super  L        33.0000所以在這種情況下所需的輸出是Value1:005Value2:002代碼protected void Button1_Click(object sender, EventArgs e){    int count = 0;    foreach (GridViewRow row in this.GridView1.Rows)    {        if ((row.Cells[2].Text != "0"))        {            count = (count + 1);        }    }    Int32 Value1 = (count - 1);    Int32 Value2 = (count - 2);    lblValue1.Text = GridView1.Rows[Value1].Cells[0].Text;    lblValue2.Text = GridView1.Rows[Value2].Cells[0].Text;}我厭倦的代碼沒有返回所需的輸出。
查看完整描述

1 回答

?
拉丁的傳說

TA貢獻1789條經驗 獲得超8個贊

這應該有效:


protected void Button1_Click(object sender, EventArgs e)

{

    List<DataGridViewRow> CountRows = new List<DataGridViewRow>();

    for (int i = this.GridView1.Rows.Count-1; CountRows.Count < 2 || i >= 0; i--)

    {

        if ((double)this.GridView1.Rows[i].Cells[2].Value != 0)

        {

            CountRows.Add(this.GridView1.Rows[i]);

        }


    }


    if(CountRows.Count >= 1)

    {

        lblValue1.Text = "Value1:" + CountRows[0].Cells[0].Text;

    }

    if(CountRows.Count == 2)

    {

        lblValue2.Text = "Value2:" + CountRows[1].Cells[0].Text;

    }

}

我所做的是使用常規 for 循環從結束到開始計數,當找到 2 行或到達開始時停止。找到的行被放在一個列表中以保存它們。


我在最后使用了額外的 if,以免在找到少于 2 行時(不是在您的示例中)使索引超出范圍異常。請隨意編輯。


希望能幫助到你!


查看完整回答
反對 回復 2021-08-07
  • 1 回答
  • 0 關注
  • 180 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號