asp.net转发器与usercontrol - 设置commandargument

时间:2010-10-30 09:32:21

标签: asp.net user-controls repeater commandargument

我有以下转发器代码:

 <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 Repeater not binding after ItemCommand有关,但我认为两者完全不同,不能分开。

2 个答案:

答案 0 :(得分:2)

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

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

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

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

答案 1 :(得分:0)

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

(为什么要尝试将它作为参数发送,从你可以在命令函数内部获取它的那一刻起,它就一样了)