积极答复者
VS2005中为什么内容页中的Repeater中的LoginView角色模板中的LinkButton单击之后没有反应?

问题
-
XP+VS2005+ASP.NET 3.5
由母版页生成一个内容页
在这个内容页中用Repeater来显示数据库中记录
Repeater控件的ItemTemplate模板中放了一个LoginView控件
这个LoginView控件当已登录用户为管理员组的用户时,显示一个LinkButton按钮,
问题是这个LinkButton按钮的事件处理程序根本就不起作用
比如在Repeater控件中LoginView控件以外的地方放一个LinkButton,单击时会激发Repeater的ItemCommand事件,但是单击LoginView里面的LinkButton则没有任何反应
里面的LinkButton对于OnClick、OnCommand、Repeater1_ItemCommand都没有反应
答案
-
我下面这个例子中的LinkButton的事件是可以触发的。
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource2"> <ItemTemplate> <div> <asp:Label ID="Label1" runat="server" Text='<%#Eval("ImageName") %>'></asp:Label> <ul> <asp:Repeater ID="Repeater2" runat="server" OnItemDataBound="Repeater2_ItemDataBound" DataSourceID="SqlDataSource1"> <ItemTemplate> <li> <%#(((RepeaterItem)(Container)).DataItem as System.Data.DataRowView )["Path"].ToString()% <asp:Repeater ID="Repeater4" runat="server" DataSourceID="SqlDataSource1"> <ItemTemplate> Test
<asp:LoginView ID="LoginView2" runat="server"> <LoggedInTemplate> <asp:LinkButton ID="LinkButton1" runat="server" OnClick="TestLinkButton">LinkButton</asp:LinkButton> </LoggedInTemplate> </asp:LoginView> </ItemTemplate> </asp:Repeater> </li> </ItemTemplate> </asp:Repeater> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:test_EmployeeInfo_SKConnectionString %>" SelectCommand="SELECT * FROM [Images] where ImageName=@newparameter "> <SelectParameters> <asp:ControlParameter ControlID="Label1" Name="newparameter" PropertyName="Text" /> </SelectParameters> </asp:SqlDataSource> </ul> </div> </ItemTemplate> </asp:Repeater>
Microsoft Online Community Support- 已标记为答案 KeFang Chen 2010年3月11日 10:06
全部回复
-
我下面这个例子中的LinkButton的事件是可以触发的。
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource2"> <ItemTemplate> <div> <asp:Label ID="Label1" runat="server" Text='<%#Eval("ImageName") %>'></asp:Label> <ul> <asp:Repeater ID="Repeater2" runat="server" OnItemDataBound="Repeater2_ItemDataBound" DataSourceID="SqlDataSource1"> <ItemTemplate> <li> <%#(((RepeaterItem)(Container)).DataItem as System.Data.DataRowView )["Path"].ToString()% <asp:Repeater ID="Repeater4" runat="server" DataSourceID="SqlDataSource1"> <ItemTemplate> Test
<asp:LoginView ID="LoginView2" runat="server"> <LoggedInTemplate> <asp:LinkButton ID="LinkButton1" runat="server" OnClick="TestLinkButton">LinkButton</asp:LinkButton> </LoggedInTemplate> </asp:LoginView> </ItemTemplate> </asp:Repeater> </li> </ItemTemplate> </asp:Repeater> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:test_EmployeeInfo_SKConnectionString %>" SelectCommand="SELECT * FROM [Images] where ImageName=@newparameter "> <SelectParameters> <asp:ControlParameter ControlID="Label1" Name="newparameter" PropertyName="Text" /> </SelectParameters> </asp:SqlDataSource> </ul> </div> </ItemTemplate> </asp:Repeater>
Microsoft Online Community Support- 已标记为答案 KeFang Chen 2010年3月11日 10:06