在ListView中,OnSelectedIndexChanged事件没有触发。

4
我有一个带有链接按钮的列表视图(也尝试过使用图像按钮),我想通过在列表视图中使用OnSelectedIndexChanged和CommandName="Select"的链接按钮来调用我的代码后端中的“DummyChanged”方法。但是问题在于这并没有起作用,当我点击按钮时,既没有错误也没有异常发生。
    <asp:ListView ID="lvwDummy" runat="server"
        DataSourceID="odsDummy"
        DataKeyNames="Id"
        OnSelectedIndexChanged="DummyChanged" >

        <LayoutTemplate>
            <asp:PlaceHolder ID="itemPlaceholder" runat="server" />
        </LayoutTemplate>

        <ItemTemplate>
            <input runat="server"
                    type="checkbox"
                    id="cbxApplication"
                    onclick='CheckOne(this)'
                    value='<%# Eval("Id") %>'
             />
             <asp:LinkButton ID="lnkDummy" runat="server" 
                 CommandName="select" >
                    <asp:Image ID="imgDummy" runat="server"
                        ImageUrl="Dummy.jpg"
                        ToolTip="Dummy" />
             </asp:LinkButton>
        <br /><br />
        </ItemTemplate>
    </asp:ListView>

    <asp:ObjectDataSource ID="odsDummy" runat="server"
        TypeName="XPTO.MyDummy.MyDummyController, XPTO, Version=1.0.0.0,  Culture=neutral, PublicKeyToken=60d2c0583f4c4a69"
        DataObjectTypeName="MyDummyViewModel"
        SelectMethod='GetAllDummys'
     />

我试图调用这个后台代码:

    protected void DummyChanged(object sender, EventArgs e)
    {
        new SimpleLogger().LogInformation("Dummy: SelectedIndexChanged");
        this.DataBind();
    }

有什么解决这个问题的想法吗?
提前感谢!

尝试将大写的“Select”分配为CommandName到按钮,并从LinkButton标记中删除嵌套的asp:Image,然后测试其工作原理。 - Davide Piras
显示 SelectedIndexChanging 事件处理程序的代码。 - Yuriy Rozhovetskiy
@YuriyRozhovetskiy 他已经展示了它,事件处理程序被调用:DummyChanged。 - Davide Piras
@DavidePiras,我已经尝试过使用大写的Select和没有嵌套的asp:image,但还是不起作用... - jjffmm
@DavidePiras,我能看到的唯一原因是在后台代码中处理了 SelectedIndexChanging 事件,而更改被拒绝了。 - Yuriy Rozhovetskiy
1个回答

0

我的猜测是你在Page_Load或其他每个 post-back 的地方进行了 DataBinding,导致事件无法触发。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接