C# ASP.NET 复选框选中单个值
C# ASP.NET Checkbox selected single value
我正在尝试从我的复选框中获取 selected 值(仅谈论单个 result/check),我想在我的按钮上的 onClick 事件中获取该值,而不仅仅是复选框我还有两个下拉列表,我也从中获取 selected 值,当我单击我的按钮时,我从下拉列表中获取值,但我无法从复选框列表中获取值,我不知道为什么,因为我在页面加载源之前设置好一切,一切看起来都很好,但我无法获得价值:/
代码如下:
protected void btnSearch_Click(object sender, EventArgs e)
{
var dropDown_one= Convert.ToInt32(dropOne.SelectedValue); //THIS IS OK
var dropDown_two = Convert.ToInt32(dropTwo.SelectedValue);//THIS IS OK
var checkBox = Convert.ToInt32(checkBox.SelectedValue); //<- here I got error, because I am trying to convert "" value to int
}
在页面加载时我这样做了:
checkBox.DataSource =SomethingFromDatabase();
checkBox.DataTextField = "Name";
checkBox.DataValueField = "ID";
checkBox.DataBind();
所以我从数据库中获得了值并且我能够检查它们,但是当我点击我的按钮时我得到了错误,因为复选框列表说它的值为“”所以我没有 select 任何东西,即使我做了.. :/
谢谢大家,
干杯
Page_Load
事件处理程序在每次回发时执行。如果您每次都调用数据绑定代码,则 CheckBoxList 会被清除并重新填充,并且您所做的选择会丢失。
此问题的解决方案是将数据绑定到 if (!IsPostBack)
条件块中:
void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
checkBox.DataSource = SomethingFromDatabase();
checkBox.DataTextField = "Name";
checkBox.DataValueField = "ID";
checkBox.DataBind();
}
}
检查 Checkbox 是否不处于禁用状态,因为它将 return NULL 处于禁用状态并将其转换为 Int 将引发错误。所以勾选复选框值为NULL并进行转换。
我正在尝试从我的复选框中获取 selected 值(仅谈论单个 result/check),我想在我的按钮上的 onClick 事件中获取该值,而不仅仅是复选框我还有两个下拉列表,我也从中获取 selected 值,当我单击我的按钮时,我从下拉列表中获取值,但我无法从复选框列表中获取值,我不知道为什么,因为我在页面加载源之前设置好一切,一切看起来都很好,但我无法获得价值:/
代码如下:
protected void btnSearch_Click(object sender, EventArgs e)
{
var dropDown_one= Convert.ToInt32(dropOne.SelectedValue); //THIS IS OK
var dropDown_two = Convert.ToInt32(dropTwo.SelectedValue);//THIS IS OK
var checkBox = Convert.ToInt32(checkBox.SelectedValue); //<- here I got error, because I am trying to convert "" value to int
}
在页面加载时我这样做了:
checkBox.DataSource =SomethingFromDatabase();
checkBox.DataTextField = "Name";
checkBox.DataValueField = "ID";
checkBox.DataBind();
所以我从数据库中获得了值并且我能够检查它们,但是当我点击我的按钮时我得到了错误,因为复选框列表说它的值为“”所以我没有 select 任何东西,即使我做了.. :/
谢谢大家, 干杯
Page_Load
事件处理程序在每次回发时执行。如果您每次都调用数据绑定代码,则 CheckBoxList 会被清除并重新填充,并且您所做的选择会丢失。
此问题的解决方案是将数据绑定到 if (!IsPostBack)
条件块中:
void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
checkBox.DataSource = SomethingFromDatabase();
checkBox.DataTextField = "Name";
checkBox.DataValueField = "ID";
checkBox.DataBind();
}
}
检查 Checkbox 是否不处于禁用状态,因为它将 return NULL 处于禁用状态并将其转换为 Int 将引发错误。所以勾选复选框值为NULL并进行转换。