2

それは不可能だと確信していますが、とにかくこれを捨てます。

ページに約10個のasp:checkboxコントロールがあり、それらのいずれかがオン/オフになるたびにデータベースにアクセスして更新する必要があります。

現在、それらすべてをCheckedChangedで起動する1つのイベントハンドラーに関連付けてから、送信者をチェックボックスにキャストしてIDを取得し、そのIDに基づいて値をパラメーターに割り当ててストアドプロシージャに渡します。

各チェックボックスにカスタムパラメータを割り当てることは可能ですか?そのため、IDをsprocパラメータ値に関連付ける必要はありません。

ありがとうございました。

ps static Dictionary <>が道のりのようですが、この投稿から.net2.0で動作する例を取得できません。

4

3 に答える 3

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

これにより、サーバー側で行う必要がある作業の量が削減されることを願っています。

于 2009-02-06T13:55:01.950 に答える
0

それを継承して、必要なプロパティを追加することができます。

または、ディクショナリを使用して、コントロールIDをデータベースIDにマップします。

編集:辞書はキーと値のペアのリストを保持します。コントロールの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");
}
于 2009-02-06T07:28:15.617 に答える