1

次のリピーターコードがあります。

 <asp:Repeater ID="repMain" runat="server" OnItemCommand="repMain_ItemCommand" EnableViewState="false">
    <ItemTemplate>
    <dmg:testcontrol runat="server" MyData=<%#Container.DataItem %>>


    </dmg:testcontrol>
    </ItemTemplate>
    </asp:Repeater>

testcontrol ユーザーコントロールは次のようになります。

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="TestControl.ascx.cs" Inherits="TestRepeater.TestControl" %>
<asp:Literal runat="server" ID="litMain" Text="<%#MyData.MyValue %>"></asp:Literal>
<asp:DropDownList runat="server" ID="dropdownMain"></asp:DropDownList>
<asp:Button runat="server" ID="btnMain" Text="Click Me" CommandName="Update" CommandArgument="<%#dropdownMain.SelectedValue%>"/>

CommandArgument として dropdownMain.SelectedValue を送信することは可能ですか?

今は空の文字列です。

ありがとう

ダンカン

PS これは、ASP.NET Repeater が ItemCommand の後にバインドされていないことに関連していますが、この 2 つは十分に異なると考えました。

4

2 に答える 2

2

少し古い質問ですが、私は自分でこれに対する答えを見つけました。

CommandArgument="<%#dropdownMain.SelectedValue%>"

一重引用符を使用する代わりに、このようにする必要があります。asp.net コントロール内のすべてのインライン コードは、代わりにこの方法で実行する必要があります。

CommandArgument='<%#dropdownMain.SelectedValue%>'
于 2011-09-22T16:29:19.343 に答える
0

選択した値を取得して、コマンド関数内で使用してみませんか?

(なぜそれを引数として送信しようとするのか、関数と呼ばれるコマンド内でそれを取得できる瞬間から、それと同じです)

于 2010-10-30T11:28:51.980 に答える