为 asp:checkbox 分配一个值(或任何其他参数)

发布于 2024-07-13 18:54:17 字数 464 浏览 6 评论 0原文

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

我的页面上有大约 10 个 asp:checkbox 控件,每次选中/取消选中其中任何一个控件时,我都需要去更新数据库。

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

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

谢谢。

ps 静态词典>> 似乎是要走的路,但是我无法从 这篇文章中获取示例 在 .net 2.0 中工作

i'm pretty sure it's not possible, but i'll throw this out there anyways.

I have about 10 asp:checkbox controls on the page, and I need to go and update the database every time any of them gets checked/unchecked.

Right now i have all of them tied to one event handler that fires on CheckedChanged, then i cast the sender to Checkbox and get the ID, and assign a value based on that ID to a parameter that gets passes to the stored procedure.

Is it possible to assign a custom parameter to each checkbox, so i don't have to tie their IDs to sproc parameter values.

Thank you.

p.s. static Dictionary<> seems to be the way to go, however i can't get examples from this post to work in .net 2.0

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

清欢 2024-07-20 18:54:17

为什么不制作您自己的自定义服务器复选框控件。

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>

Why not make your own custom server checkbox control.

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>
影子是时光的心 2024-07-20 18:54:17

尝试使用常规 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.
}

希望这会减少您必须在服务器端执行的工作量。

It might be an idea to try using regular HTML checkboxes and submitting them as an array / comma-separated list:

<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>

Then on the server side you could do something like:

string tmp = Request.Form["items[]"];
if (!string.IsNullOrEmpty(tmp)) {
    string [] items = tmp.Split(new char[]{','});
    // rest of processing, etc.
}

Hopefully this will reduce the amount of work you have to do server side.

饮湿 2024-07-20 18:54:17

您可以继承它并添加您需要的属性。

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

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

myDictionary[keyValue]

Declare Like:

Dictionary<string, string> myDictionary = new Dictionary<string, string>();

EDIT 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");
}

You could inherit from it and add the property you need.

Or use a Dictionary to map control IDs to your database IDs.

EDIT:
A dictionary holds a list of key/value pairs. The control's ID could be the key, and the database-relevant "custom parameter" you want (I'm not 100% sure what you're talking about but the Dictionary can store it) could be the value. When you want to get the value, you get it with:

myDictionary[keyValue]

Declare Like:

Dictionary<string, string> myDictionary = new Dictionary<string, string>();

EDIT 2:
For a static Dictionary:

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");
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文