我有两个列表视图,每个都包含一个链接按钮。 如果我从第一个列表视图中按下它会触发一个事件但是当我从第二个按下它时它不会。但如果我将lb放在第二个列表视图的上方,它会将其激活。
第一个listview:
<asp:ListView ID="ListViewMesaje" runat="server">
<LayoutTemplate>
<ul>
<asp:PlaceHolder ID="itemPlaceholder" runat="server" />
</ul>
</LayoutTemplate>
<ItemTemplate>
<asp:LinkButton ID="LinkButtonStergeMesaj" runat="server" CommandName="stergeMesaj"
CommandArgument='<%#Container.DataItem%>' OnCommand="LinkButtonListView_Click"><div id="mesajdelete" class='<%#getBackgGifMesaj(getUsernameMesaj((string) Container.DataItem,"citit"))%>'></div></asp:LinkButton>
</ItemTemplate>
</asp:ListView>
第二个:
<asp:ListView ID="ListViewFriendRequests" runat="server" DataSourceID="SqlDataSourceFriendRequests" >
<LayoutTemplate>
<ul>
<asp:PlaceHolder ID="itemPlaceholder" runat="server" />
</ul>
</LayoutTemplate>
<ItemTemplate>
<asp:LinkButton ID="LinkButtonfqignora" runat="server" CommandName="refuzaPrieten"
CommandArgument='<%#Eval("username")%>' OnCommand="LinkButtonListView_Click"><div id="friendreqign" >'<%#Eval("username")%>'</div></asp:LinkButton>
</ItemTemplate>
</asp:ListView>
答案 0 :(得分:1)
我终于找到了一个答案,为什么列表视图中的按钮不会被激活。 如果您使用SqlDataSource作为DataSource,则需要为sqldatasource声明SelectCommand,UpdateCommand,DeleteCommand和InsertCommand,如下所示:
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:Pubs %>"
SelectCommand="SELECT [au_id], [au_lname], [au_fname], [state] FROM [authors]"
UpdateCommand="UPDATE [authors] SET [au_id] = @au_id, [au_lname] = @au_lname,[au_fname] = @au_fname, [state] = @state WHERE [au_id] = @original_au_id"
DeleteCommand="DELETE FROM [authors] WHERE [au_id] = @original_au_id"/>
起初我刚刚宣布了SelectCommand,这就是按钮没有被激活的原因。
答案 1 :(得分:0)
两个建议:您是否尝试删除DataSourceID属性,因为这似乎是两者之间的主要区别?
此外,最好订阅ListView的Command事件,而不是直接订阅链接按钮的命令事件。当命令甚至触发按钮时,事件将冒出来,列表视图将接收它并使用相关信息触发自己的事件。