1

ユーザーのキャラクターを表示するページがあります。リピーターを使用して、DB から取得したキャラクターに関するさまざまな情報を使用して、キャラクターごとに div を作成します。div の 1 つをクリックしたときに、characterId をパラメーターとして使用するメソッド サーバー側を呼び出せるようにしたいと考えています。

divタグでonclickを使ってみました。アンカーの使用。display:none ボタンを使用して、div をクリックしたときにそれを呼び出して、私にはあまり意味のない奇妙なことをいくつか試しました。私はアイデアから抜け出しています。必要に応じて JavaScript を使用しても問題ありません。

これが私のページのコードです

<asp:Repeater ID="VK_Character_CharacterNotSelected_rptCharacter" runat="server">
            <ItemTemplate>
                <div class="divCharacterNotSelected_divCharacterPanel" 
                     onclick='<%# "SelectCharacter_Click("+Eval("CharacterId")+")" %>'
                     runat="server" 
                     id="VK_Character_CharacterNotSelected_divCharacter">

そしてコードビハインド

protected void SelectCharacter_Click(int characterId)
{
    Stuff....
}

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

編集:King A.Majidの回答に従った後、パラメーターを使用してサーバー側のメソッドを呼び出すことができますが、divをクリックしたときにonclickボタンを呼び出す必要があります。

編集 2: ItemDataBound を使用して設定することを考えましたが、div onclick を設定する方法がわかりません

編集 3: 代わりに linkbutton を使用しますが、リンクにある CSS と混同します。表示する画像は次のとおりです。

ここに画像の説明を入力

編集 4: 問題が解決しました。リンクを修正するために、余分な CSS をページに追加しました。

4

2 に答える 2

1

ブロ、

目標を達成するには、次を使用し、リピーター内でボタンを次のように定義します。

<asp:Button Id="SelectCharacter" CommandName="SelectCharachter" runat="server"  CommandArgument='<%# Eval("CharachterId") %>' />

コードビハインド:

  protected void VK_Character_CharacterNotSelected_rptCharacter_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
         switch (e.CommandName)
                {
case "SelectCharachter":
string _SelectedCharachter=e.CommandArgument.ToString();
break;

}
}

したがって、リピーター内で Repeater_Command イベントがそれを処理する限り、OnClick を処理する必要はありません。

よろしく

于 2013-05-16T20:01:01.150 に答える
1

使用できますLinkButton。ブラウザ上でリンクとしてレンダリングされるため、そのリンク内に必要なものを追加できます。

<asp:Repeater ID="VK_Character_CharacterNotSelected_rptCharacter" runat="server">
    <ItemTemplate>
        <asp:LinkButton runat="server" ID="LinkButton1" 
            OnCommand="LinkButton1_Command" 
            CommandArgument='<%# Eval("CharacterId") %>'>
            <div class="divCharacterNotSelected_divCharacterPanel">...</div>
        </asp:LinkButton>
    </ItemTemplate>
</asp:Repeater>

protected void LinkButton1_Command(object sender, CommandEventArgs e)
{
    var characterId = e.CommandArgument;
}
于 2013-05-16T20:41:04.050 に答える