存储aspx复选框的值?

时间:2013-04-11 17:52:07

标签: c# asp.net

我有一个由ListItem列表填充的复选框列表,每个ListItem都有文本和类似“8”或“5”的值。

但是我意识到CheckBox没有值,它的值是否被检查。

var listType = SettingsManager.Get("CRMCaseTypes");
var listStatus = SettingsManager.Get("CRMStatusReasons");

var listTypeItems = ParseSettingList(listType);
var listStatusItems = ParseSettingList(listStatus);

cblCRMType.DataSource = listTypeItems;
cblCRMType.DataBind();
cblCRMStatus.DataSource = listStatusItems;
cblCRMStatus.DataBind();

foreach (Control c in cblCRMStatus.Controls)
{
   CheckBox cb = c as CheckBox;
   if(cb != null && cb.(value........)
}

有什么方法可以在每个复选框中存储一个值,并在用户点击提交后在代码中再次使用它吗?

由于

7 个答案:

答案 0 :(得分:1)

是的,你可以。您可以向CheckBox添加自定义属性。您可以使用HTML5数据属性,这样您的HTML将是HTML5有效的:

foreach (Control c in cblCRMStatus.Controls)
{
   CheckBox cb = c as CheckBox;
   if(cb != null)
   {
       cb.Attributes.Add("data-MyField", myFieldVal);
   }
}

提取

foreach (Control c in cblCRMStatus.Controls)
{
   CheckBox cb = c as CheckBox;
   if(cb != null && cb.Attributes["data-MyField"].ToString())
   {
       // do something
   }
}

答案 1 :(得分:0)

您想要多久使用它?如果要暂时存储它,可以使用会话。如果要将其存储时间更长,请将其保存到数据库或文件中。

答案 2 :(得分:0)

您可以从复选框所绑定的列表中提取值,并根据复选框的索引引用相关的列表项。

答案 3 :(得分:0)

您可以将其添加为属性 -

SET:

myCheckBox.Attributes.Add("myKey","myValue");

GET:

var myKey = myCheckBox.Attributes["myKey"] != null ?  myCheckBox.Attributes["myKey"].ToString() : "";

答案 4 :(得分:0)

有什么方法可以在每个复选框中存储一个值,并在用户点击提交后在代码中再次使用它吗?

您可以将其设置为会话

Session["CbxList"] = YourCheckBoxList;

然后,当您想要引用它时,只需添加以下内容:

if (Session["CbxList"] != null)
{
YourCheckBoxList = Session["CbxList"] as CheckBoxList;
}

并使用。

如果您或其他任何人不熟悉会话,我会附上会话链接: http://msdn.microsoft.com/en-us/library/ms178581(v=vs.100).aspx

答案 5 :(得分:0)

您需要查看Items集合,而不是Controls集合:

    foreach (ListItem item in cblCRMStatus.Items)
    {
        string value = item.Value;
    }

答案 6 :(得分:0)

尽管可能不再需要OP我会添加我的答案,因为这个帖子仍然在Google中排名很高。如果这是ASPxCheckBox,您可以使用JSProperties字典来存储您的值,如下所示:

cb.JSProperties["cpMyValue"] = "MyValue";

我通常会使用来自ASPxGridViewCallbackPanel的回调来将其恢复到服务器端(这稍微超出了原始问题的范围)。