none
VS2005中为什么内容页中的Repeater中的LoginView角色模板中的LinkButton单击之后没有反应? RRS feed

  • 问题

  • 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都没有反应

    2010年3月5日 10:05

答案

  • 我下面这个例子中的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
    2010年3月10日 5:28

全部回复

  • 你好,

    你直接给这个LinkButton添加一个onclick事件试试。

    比如: <asp:LinkButton ID="LinkButton1" runat="server" onclick="LinkButton1_Click">LinkButton</asp:LinkButton>
    Microsoft Online Community Support
    2010年3月8日 3:26
  • OnClick也试过了,一样没有反应


    里面的LinkButton对于OnClick、OnCommand、Repeater1_ItemCommand都没有反应
    2010年3月10日 1:27
  • 你好,

    LoginView本身就是一个控件,只能在模板里面添加控件,不知道你是怎么放的?


    Microsoft Online Community Support
    2010年3月10日 5:23
  • 我下面这个例子中的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
    2010年3月10日 5:28
  • 在没有使用母版页的时候可以的,如果用了母版页的话,就行了,版主试试看看

    2010年5月5日 9:13