2011-01-11 77 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