用户控件不会触发访问者的事件

时间:2008-12-11 18:57:02

标签: c# asp.net user-controls

此UpdatePanel包含在UserControl中。当按下LinkBut​​ton时,应该在另一个GridView中添加arow。当用户登录时,此控件运行良好。 当用户未登录并尝试按下该按钮时,会出现问题。没有事件触发。 有人建议我在web.config中授予访问此控件的权限。那没用。 有人有另一个想法吗?

<asp:UpdatePanel runat="server" UpdateMode="Conditional" EnableViewState="true" ID="IngredientsUpdatePanel">
<ContentTemplate>
    <asp:ObjectDataSource ID="sourceIngredients" runat="server" SelectMethod="GetAll">
    </asp:ObjectDataSource>
    <asp:GridView ID="Ingredients" AllowPaging="true" runat="server" DataKeyNames="IngredientId"
        EnableViewState="true" DataSourceID="sourceIngredients" PageSize="5"
        AutoGenerateColumns="false" HorizontalAlign="Center" OnSelectedIndexChanged="Ingredients_SelectedIndexChanged">
         <RowStyle HorizontalAlign="Center"  />  
         <HeaderStyle Font-Bold="true" ForeColor="Black" /> 
         <Columns>                        
                <asp:TemplateField HeaderText="Ingrediente" ItemStyle-Font-Size="10">                
                    <ItemTemplate>
                        <asp:Label ID="lblId" Text='<%# Bind("IngredientId") %>' Visible="false" runat="server"/>
                        <asp:Label ID="lblPrice" Text='<%# Bind("Price") %>' Visible="false" runat="server"/>
                        <asp:Label ID="lblDescr" Text='<%# Bind("Description") %>' Visible="false" runat="server"/>
                        <asp:Label ID="lblName" Text='<%# Bind("Name") %>' Visible="false" runat="server"/>
                        <asp:Label ID="lblPict" Text='<%# Bind("Picture") %>' Visible="false" runat="server"/>
                        <div style="text-align:left;">                        
                            <img id="img" style="float:right;" src='<%# Eval("Picture") %>'
                                height="75" runat="server" alt="Picture" />                                                    
                            <b>
                                <%# Eval("Name") %>
                            </b>
                            <br />
                            <br />
                            Price: <b><%# Eval("Price") %></b>
                            <br />
                            <br />
                            <br />
                        </div>                    
                        <hr />
                        <div style="text-align:left;">
                        <b>Description</b>
                        </div>
                        <div style="width:300px;">
                            <%# Eval("Description") %> 
                        </div>
                        <br />
                        <asp:LinkButton Enabled="true" runat="server" Text="Add" CommandName="Select" ID="cmdAdd" />                           
                       </ItemTemplate>            
                </asp:TemplateField>
             </Columns>
    </asp:GridView>
</ContentTemplate>

2 个答案:

答案 0 :(得分:1)

我以棘手的方式解决了这个问题。 我删除了LinkBut​​ton,在TemplateField之前我放了一个ButtonField,一切正常。 现在代码如下:

 <Columns>
  <asp:ButtonField Text="Add" CommandName="Select" />                 
      <asp:TemplateField>
            ......
      </asp:TemplateField>
 </Columns>

我还是不明白为什么控件有这种行为。

答案 1 :(得分:0)

不要忘记在web.config中给webresource.axd足够的权限吗?

豫ICP备18024241号-1