我很确定这是不可能的,但无论如何我会把它扔出去。
我在页面上有大约10个asp:checkbox控件,每次检查/取消选中任何一个时,我都需要更新数据库。
现在我将所有这些绑定到一个在CheckedChanged上触发的事件处理程序,然后我将发送者转发到Checkbox并获取ID,并将基于该ID的值分配给一个获取传递给存储过程的参数。
是否可以为每个复选框分配自定义参数,因此我不必将其ID绑定到sproc参数值。
谢谢。
P.S。静态字典<>似乎是要走的路,但是我无法从this post获得在.net 2.0中工作的示例
答案 0 :(得分:3)
为什么不制作自己的自定义服务器复选框控件。
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>
答案 1 :(得分:1)
尝试使用常规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>
然后在服务器端,您可以执行以下操作:
string tmp = Request.Form["items[]"];
if (!string.IsNullOrEmpty(tmp)) {
string [] items = tmp.Split(new char[]{','});
// rest of processing, etc.
}
希望这会减少您在服务器方面的工作量。
答案 2 :(得分:0)
您可以从中继承并添加所需的属性。
或使用Dictionary将控件ID映射到数据库ID。
编辑: dictionary包含键/值对的列表。控件的ID可能是键,您想要的数据库相关的“自定义参数”(我不是100%确定您所说的内容,但字典可以存储它)可能是值。当你想获得价值时,你可以得到:
myDictionary[keyValue]
宣布赞:
Dictionary<string, string> myDictionary = new Dictionary<string, string>();
编辑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");
}