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%>"/>

我可以通过 dropdownMain.SelectedValue 作为 CommandArgument 发送吗?

刚才它是一个空字符串。

谢谢

邓肯

PS 这与ASP.NET 中继器在 ItemCommand 之后未绑定有关,但我认为两者完全不同,可以分开。

4

2 回答 2

2

一个有点老的问题,但我只是自己找到了这个问题的答案。

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

需要看起来像这样,而不是单引号!asp.net 控件中的所有内联代码都必须以这种方式完成。

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

为什么不获取选定的值,并在 Command 函数中使用它?

(为什么要尝试将其作为参数发送,从您可以在调用函数的命令中获取它的那一刻起,它是相同的)

于 2010-10-30T11:28:51.980 回答