2009-06-01 5 views
0

Я пытаюсь создать пользовательский элемент управления для обтекания API-интерфейса членства (набор настраиваемых Gridviews для лучшего отображения данных), и, хотя код и элементы управления отлично работали на странице , когда я переместил их в .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> 

Спасибо.

+0

комментарий извините за неверно отформатированный aspx ... StackOverflow раньше искал мои div. – PhrkOnLsh

+0

Я немного отследил его. Кажется, что моя страница по какой-то причине вызывает Page_Load дважды, один раз в качестве обратной передачи, а другой нет! Любая идея, почему система будет бросать два обратной передачи в один пользовательский элемент управления? – PhrkOnLsh

ответ

0

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

+0

Веб-сайт, извините. – PhrkOnLsh

Смежные вопросы