События управления пользователями не попадают в их обработчики - PullRequest
0 голосов
/ 01 июня 2009

Я пытаюсь создать пользовательский элемент управления, чтобы обернуть вокруг членства API (набор пользовательских Gridview для лучшего отображения данных), и хотя код и элементы управления работали нормально на странице, когда я переместил их в. ascx, события перестали стрелять в него.

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="CustomMembership.ascx.cs" Inherits="CCGlink.CustomMembership" %>
<asp:Panel ID="mainPnl" runat="server">
<asp:Label 
    id="lblError"
    ForeColor="Red" 
    Font-Bold="true"
    runat="server" />
<asp:GridView
    id="grdUsers"
    HeaderStyle-cssclass="<%# _headercss %>"
    RowStyle-cssclass="<%# _rowcss %>"
    AlternatingRowStyle-cssclass="<%# _alternatingcss %>"
    OnRowUpdating="grdUsers_RowUpdating"
    OnRowDeleting="grdUsers_RowDeleting"
    OnRowCancelingEdit="grdUsers_cancelEdit"
    autogeneratecolumns="false"
    allowsorting="true"
    AllowPaging="true"
    EmptyDataText="No users..."
    pagesize="<%# PageSizeForBoth %>"
    runat="server">
<!-- ...columns... -->
</asp:GridView>
<asp:Button
    id="btnAllDetails"
    onclick="btnAllDetails_clicked"
    text="Full Info"
    runat="server" />
<asp:GridView 
    DataKeyNames="UserName"
    HeaderStyle-cssclass="<%# _headercss %>"
    RowStyle-cssclass="<%# _rowcss %>"
    AlternatingRowStyle-cssclass="<%# _alternatingcss %>"
    id="grdAllDetails"
    visible="false"
    allowsorting="true"
    EmptyDataText="No users in DB."
    pagesize="<%# PageSizeForBoth %>"
    runat="server" />
<asp:Button
    id="btnDoneAllDetails"
    onclick="btnAllDetails_clicked"
    text="Done."
    Visible="false"
    runat="server" />
</asp:Panel>

Однако ни одно из событий в первых двух элементах управления (gridview grdUsers и кнопка btnAllDetails) просто НЕ происходит, я проверил это в отладчике. Если они произошли очень хорошо на странице aspx, почему они умирают при переходе на ascx?

Мой код в aspx сейчас:

 <div class="admin-right">
    <asp:ScriptManager ID="sm1" runat="server" />
    <h1>User Management</h1>
    <div class="admin-right-users">
    <asp:UpdatePanel ID="up1" runat="server">
    <ContentTemplate>
        <cm1:CustomMembership
            id="showUsers" 
            PageSizeForBoth="9" 
            AlternatingRowStylecssclass="alternating"
            RowStylecssclass="row"
            DataSource="srcUsers"
            HeaderStylecssclass="header" 
            runat="server" />
    </ContentTemplate>
    </asp:UpdatePanel>
    </div>

Спасибо.

Ответы [ 2 ]

0 голосов
/ 02 июня 2009

http://forums.asp.net/t/1102183.aspx

Это объясняет, что существует проблема с ButtonType = "Image" в CommandField. Изменение записи на «Ссылка» устраняет эту проблему.

0 голосов
/ 02 июня 2009

Вы не сказали, создаете ли вы веб-сайт или веб-приложение - если вы создаете веб-приложение, проверяли ли вы, что файл .designer обновился правильно, когда вы переместили элементы управления в пользовательский элемент управления?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...