Asp.net ListView命令按钮的参数为空

时间:2015-05-09 22:24:22

标签: c# asp.net listview data-binding commandargument

这是我的.aspx页面

<asp:ListView ID="ListViewGSMatches" runat="server" SelectMethod="ListViewGSMatches_GetData" DataKeyNames="id" UpdateMethod="ListViewGSMatches_UpdateData">
    <LayoutTemplate>
        .
        .
        .
    </LayoutTemplate>
    <ItemTemplate>
       .
       .
       .
    </ItemTemplate>
    <EditItemTemplate>    
        <asp:ListView ID="ListViewPlayerStatisticsHome" runat="server" DataSource='<%# GetPlayerStatistics(Eval("participant1Id"), Eval("id"))%>' DataKeyNames="id" OnItemCommand="ListViewPlayerStatisticsHome_OnItemCommand">
            <LayoutTemplate>
                <span>Off. Statistics</span>
                <asp:TextBox runat="server" ID="TxbOffensiveStatistics"></asp:TextBox>
                <span>Def. Statistics</span>
                <asp:TextBox runat="server" ID="TxbDefensiveStatistics"></asp:TextBox>
                <asp:Button runat="server" Text="Update" ID="UpdateButton" CommandName="UpdateStatistics" CommandArgument='<%# Eval("matchId") + "/2" %>' ClientIDMode="Static" />
            </LayoutTemplate>
            <ItemTemplate>
                   .
                   .
                   .
             </ItemTemplate>
        </asp:ListView>
    </EditItemTemplate>    
</asp:ListView>

这是.cs文件

protected void ListViewPlayerStatisticsHome_OnItemCommand(object sender, ListViewCommandEventArgs e)
{
    var ca = e.CommandArgument;
    var cn = e.CommandName;
}

我的问题是使用CommandArgument='<%# Eval("matchId") + "/2" %>'时CommandArgument是空字符串。当我像这样设置CommandArgument:CommandArgument="1"时,我可以在后面的代码中访问CommandArgument。 我也试过onCLick事件,但是再次使用数据绑定表达式时CommandArgument是空的。

在这种情况下,为什么数据绑定对我不起作用?是因为嵌套的ListView吗?(我发现很多使用数据绑定表达式来设置commandArgument的例子)

  

块引用

0 个答案:

没有答案