2011-01-11 52 views
0

我是初學者。 ItemName,ItemDescription,Length和Quantity有四個文本框字段。 一個radiobuttonlist及其列表項是FixedLength和Random Length。 一個按鈕字段叫做Submit和一個GridView。如何根據條件檢查GridView中的複選框?

在GridView中,我有4個綁定列和1個模板列,如ItemName,ItemDescription,Length,Quantity和IsFixed_f(標誌字段)。我在GridView的模板列中爲IsFixed_f字段添加了一個複選框。

輸入所有文本框字段後,我必須在radiobuttonlist(FixedLength或RandomLength)中選擇一個listitem。完成這些事情後。如果我輸入Submit按鈕,那麼將顯示TextBox中相應列名稱和複選框下的所有值,以檢查是否選擇了FixedLength listitem,否則checkbox.checked應該爲false。這個怎麼做?

在按鈕的單擊事件,我用這樣的

 DataRow DR = null; 
     DR = datatable.NewRow(); 
     DR["ItemName"] = DSItemName.Text.Trim(); 
     DR["Description"] = txtItemDescription.Text.Trim(); 
     DR["Length"] = txtLength.Text.Trim(); 
     DR["Quantity"] = txtQuantity.Text.Trim(); 
     datatable.Rows.Add(DR); 
     GridView.DataSource = datatable; 
     GridView.DataBind(); 

但我不知道如何檢查的複選框,並把它顯示在GridView。請提出建議。 如果我使用下面的代碼,它將顯示GridView中CheckBox的文本「true」。

 foreach (GridViewRow GVR in gridview.Rows) 
     { 
      CheckBox cb = (CheckBox)GVR.FindControl("cbIsFixed_f"); 

      if (cb != null && radiobuttonlist.SelectedItem.Value == "Fixed Length") 
      { 
       cb.Checked = true; 
      } 
      else 
      { 
       cb.Checked = false; 
      } 
      DR["IsFixed_f"] = cb.Checked; 
     } 
+0

我們是否也可以從.aspx文件中看到您的代碼? – 2011-01-11 09:40:51

+0

@Jakob。感謝你的迴應。我得到了答案,我在下面發佈。 – thevan 2011-01-11 11:25:32

回答

0

我得到了這個問題的答案。

DR["IsFixed_f"] = radiobuttonlist.SelectedItem.Value == "Fixed Length" ?true : false; 

謝謝你們所有的回覆。

0

您可以爲gridview的OnRowDataBound事件編寫事件處理函數。在這種情況下,您需要找到複選框列並將其設置爲已選中或未選中。

是這樣的:

protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    CheckBox c = e.Row.Cells[4].FindControl("YourCheckboxId"); 
    if(c != null && e.Row.DataItem["sFixed_f"] == true) 
    { 
    c.Checked = true; 
    } 
} 
+0

嗨,我編輯了我的問題。我希望它能對我的問題給出一些清晰的概念。 – thevan 2011-01-11 10:10:56

0

我不太知道如何讓一個排出來的數據集 - 我假設你的意思dataTable.newRow()。此外,我希望你的tableSchema包含你的IsFixed_f值的列。

如果您的tableSchema具有您的IsFixed_f值的額外列,您可以使用checkBoxField綁定這些值。

正如你所提到的一個templateField,我假設你的表沒有IsFixed_f的任何定義?在這種情況下,您可以手動將此列添加到您的模式。

綁定您的IsFixed_f值到一個特定的複選框(在新gridviewrow)不存儲在某個地方(數據集/表?!) - 似乎不可能給我...

希望這可以幫助 - 如果不是,請詳細描述你的問題!

+0

@Franz。它是一個數據表。我沒有將這些字段存儲在數據庫中。我只想使用GridView顯示。但是使用上面的代碼,我可以在GridView中顯示文本框的值。 – thevan 2011-01-11 09:56:06