C# 将值(或任何其他参数)指定给asp:复选框

C# 将值(或任何其他参数)指定给asp:复选框,c#,.net,asp.net,.net-2.0,checkbox,C#,.net,Asp.net,.net 2.0,Checkbox,我很确定这是不可能的,但无论如何我会把它扔出去 我在页面上有大约10个asp:checkbox控件,每次选中/取消选中它们时,我都需要去更新数据库 现在,我将它们都绑定到一个在CheckedChanged上触发的事件处理程序,然后我将发送者强制转换为Checkbox并获取ID,然后基于该ID将一个值分配给一个参数,该参数将传递给存储过程 是否可以为每个复选框指定一个自定义参数,这样我就不必将它们的ID与存储过程参数值绑定在一起 多谢各位 p.s.静态词典似乎是一条可行之路,但我无法从中获取示例,

我很确定这是不可能的,但无论如何我会把它扔出去

我在页面上有大约10个asp:checkbox控件,每次选中/取消选中它们时,我都需要去更新数据库

现在,我将它们都绑定到一个在CheckedChanged上触发的事件处理程序,然后我将发送者强制转换为Checkbox并获取ID,然后基于该ID将一个值分配给一个参数,该参数将传递给存储过程

是否可以为每个复选框指定一个自定义参数,这样我就不必将它们的ID与存储过程参数值绑定在一起

多谢各位


p.s.静态词典似乎是一条可行之路,但我无法从中获取示例,以在.net 2.0中工作

您可以从中继承并添加所需的属性

或者使用字典将控件ID映射到数据库ID

编辑: 保存键/值对的列表。控件的ID可以是键,您想要的与数据库相关的“自定义参数”(我不是100%确定您在说什么,但字典可以存储它)可以是值。当您想要获取该值时,可以通过以下方式获取:

myDictionary[keyValue]
声明如下:

Dictionary<string, string> myDictionary = new Dictionary<string, string>();
Dictionary myDictionary=newdictionary();
编辑2: 对于静态字典:

public static readonly IDictionary<string, string> myDictionary = new Dictionary<string, string>();

static ClassConstructor()
{
    myDictionary.Add("key1", "value1");
    myDictionary.Add("key2", "value2");
    myDictionary.Add("key3", "value3");
}
公共静态只读IDictionary myDictionary=新字典();
静态类构造函数()
{
添加(“键1”、“值1”);
添加(“键2”、“值2”);
添加(“键3”、“值3”);
}

可以尝试使用常规HTML复选框,并将其作为数组/逗号分隔列表提交:

<input type="checkbox" id="item-1" name="items[]" value="1" />
<label for="item1">Item 1</label>
....
<input type="checkbox" id="item-n" name="items[]" value="n" />
<label for="item1">Item n</label>

希望这将减少服务器端的工作量。

为什么不创建自己的自定义服务器复选框控件呢

namespace CustomControls
{
    public class CustomCheckBox : CheckBox
    {
       string _myValue;
       public string MyValue
       {
           get { return _myValue; }
           set { _myValue = value; }
       }

       public CustomCheckBox()
       {
       }
    }
}

<%@ Register TagPrefix="MyControls" Namespace="CustomControls"%>
<MyControls:CustomCheckBox id="chkBox" runat="server" MyValue="value"></MyControls:CustomTextBox>
命名空间自定义控件
{
公共类自定义复选框:复选框
{
字符串_myValue;
公共字符串MyValue
{
获取{return\u myValue;}
设置{u myValue=value;}
}
公共自定义复选框()
{
}
}
}

你能详细介绍一下字典吗?我想使用静态字典,但无法使用。我在帖子中添加了一个静态字典示例由于这个问题和答案,我现在有了另一个鄙视ASP.NET的理由。
namespace CustomControls
{
    public class CustomCheckBox : CheckBox
    {
       string _myValue;
       public string MyValue
       {
           get { return _myValue; }
           set { _myValue = value; }
       }

       public CustomCheckBox()
       {
       }
    }
}

<%@ Register TagPrefix="MyControls" Namespace="CustomControls"%>
<MyControls:CustomCheckBox id="chkBox" runat="server" MyValue="value"></MyControls:CustomTextBox>