0

以下に示すように、ページにドロップダウンリストがあります。

<asp:DropDownList ID="DropDownList1" runat="server" 
        onselectedindexchanged="DropDownList1_SelectedIndexChanged" AutoPostBack="true">
        <asp:ListItem Text="1" Value="1"></asp:ListItem>
        <asp:ListItem Text="2" Value="2"></asp:ListItem>
        <asp:ListItem Text="3" Value="3"></asp:ListItem>
    </asp:DropDownList>

コードビハインド:

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
       //Logic Goes Here
    }

ページの読み込みで、セッション変数からDropDownListidを「DropDownList1」として取得します。このID文字列に基づいて、コントロールを取得できますが、関連付けられているイベント名を取得できません。

では、コントロールを知ってコントロールのイベント名を見つけるにはどうすればよいですか?

事前にThnaks

4

4 に答える 4

2

属性で取得する必要がある場合があります。

string selected = EventDropDownList1.Attributes["onselectedindexchanged"].ToString();
于 2012-10-22T12:08:36.203 に答える
1

ここで何を尋ねているのかわかりませんが、イベントは 2 つの方法で結び付けることができます。

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)Handles DropDownList1.SelectedIndexChanged

またはページ読み込み部分で:

AddHandler DropdownList1.SelectedIndexChanged, AddressOf DropDownList1_SelectedIndexChanged

あなたの質問がコントロール名からイベントの名前を見つけることを求めていることは知っていますが、イベントをコントロールに配線します。どのコントロールがイベントを発生させたかをテストする必要がある場合、つまり、複数のドロップダウン リストに接続された同じコードがあり、DDL ID に基づいてコード フローを制御したい場合は、送信者をキャストしてその値にアクセスします。

Dim id As String = CType(sender,DropDownList).ID

お役に立てば幸いです。詳細をお知らせいただければ、より明確な回答を差し上げることができます。

VB.Netで申し訳ありません。

于 2012-10-22T12:15:01.840 に答える
0

ブローコードを使用できます:

Request.Form("__EVENTTARGET")
于 2012-10-22T12:10:19.323 に答える
0

AutoPostBack = true を使用している場合、イベントを指定する必要はありません。自動ポストバックは、ポストバックで起こったことに基づいて正しいイベントを実行します。

したがって、イベントの名前を知る必要はありません。バックエンドでイベントを作成するだけで、autopostback が適切なコードを起動します。

于 2012-10-22T12:10:27.093 に答える