C# 如何根据条件在GridView中选中复选框?
我是初学者。我有四个文本框字段用于ItemName、ItemDescription、Length和Quantity。 一个radiobuttonlist及其列表项为FixedLength和Random Length。 一个名为Submit的按钮字段和一个gridview 在GridView中,我有4个绑定列和1个模板列,例如ItemName、ItemDescription、Length、Quantity和IsFixed_f(标志字段)。我在GridView的Template列中为IsFixed\u f字段添加了一个复选框 输入所有文本框字段后,我必须在radiobuttonlist中选择一个列表项(FixedLength或RandomLength)。完成这些事情之后。如果我输入Submit按钮,则文本框中的所有值都将显示在GridView的相应列名下,如果选择了FixedLength listitem,则要选中复选框。否则,复选框应为false。如何做到这一点 在Button Click事件中,我使用了如下方式C# 如何根据条件在GridView中选中复选框?,c#,asp.net,user-controls,C#,Asp.net,User Controls,我是初学者。我有四个文本框字段用于ItemName、ItemDescription、Length和Quantity。 一个radiobuttonlist及其列表项为FixedLength和Random Length。 一个名为Submit的按钮字段和一个gridview 在GridView中,我有4个绑定列和1个模板列,例如ItemName、ItemDescription、Length、Quantity和IsFixed_f(标志字段)。我在GridView的Template列中为IsFixed\
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中显示文本“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;
}
您可以为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;
}
}
我不太清楚如何从数据集中获取一行数据——我想您指的是dataTable.newRow()。此外,我希望您的表模式包含一列IsFixed\u f值 如果您的tableSchema为您的IsFixed\u f值增加了一列,您可以使用checkBoxField绑定这些值 正如您提到的templateField一样,我假设您的表没有IsFixed\u f的任何定义?在这种情况下,您可以手动将此列添加到架构中 将IsFixed_f值绑定到特定的复选框(在新的gridviewrow中),而不将其存储在某个位置(数据集/表格?!)-对我来说似乎不可能
希望这可能会有所帮助-如果没有,请详细描述您的问题 我得到了这个问题的答案
DR["IsFixed_f"] = radiobuttonlist.SelectedItem.Value == "Fixed Length" ?true : false;
谢谢大家的回复。我们也可以从.aspx文件中查看您的代码吗?@Jakob。谢谢你的回复。“我得到了答案,我在下面发了帖子。”弗兰兹。是的,这是一个数据表。我没有将这些字段存储在数据库中。我只想使用GridView显示它。但是使用上面的代码,我可以在GridView.Hi中显示文本框值。我已经编辑了我的问题。我想这会对我的问题给出一些清晰的看法。谢谢你编辑你的答案——还有一个问题。gridView中的每一行都有自己的IsFixed\u f值?如果这是正确的,您需要将IsFixed\u f值存储在某个地方。。什么时候运行示例代码(foreach…)-PageLoad?点击按钮?点击提交?此示例代码引用每行的radiobuttonlist(不在gridview中)!那么每一行的复选框都有相同的值?我仍然认为您需要为每行存储IsFixed_f值!嗨,弗兰兹,谢谢你的支持。我得到了答案。我在上面发布了。无论如何,欢迎您尝试:DR[“IsFixed_f”]=(radiobuttonlist.SelectedItem.Value=“Fixed Length”);//这也会起作用:DHi,我已经编辑了我的问题。我希望它能让你对我的问题有一个清晰的认识。别忘了把你的问题标记为未回答(或者给一些答案打分gg)