2011-12-21 34 views
0

私は、(私が定義した)ポップアップを開く必要がありますが、ASPポップアップを開く必要がありますが、 (定義したページメソッドを呼び出すのではなく)現在のページコンテンツをすべて表示します。popupextendercontrol原因asp.net 3.5

これは、約5時間のデバッグ、新しいプロジェクトの開設(他のプロジェクトでのケースの再試行など)などです。事前に おかげで...

これは、ユーザーコントロールを扱うページの本文です:

<body> 
    <form id="form1" runat="server"> 
    <div> 
     <ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"></ajaxToolkit:ToolkitScriptManager>  
     <ucpop:popup ID="gv" runat="server" /> 
     </div> 
    </form> 

これはユーザーコントロールです:

<asp:UpdatePanel runat="server" ID="upExample"> 
    <ContentTemplate> 
     <asp:GridView runat="server" ID="gvCars" 
      OnDataBinding="gvCars_DataBinding" 
      OnRowCommand="gvCars_RowCommand" 
      >    
     <Columns> 
      <asp:TemplateField> 
       <ItemTemplate>       
        <asp:ImageButton runat="server" ID="ibPopup" ImageUrl="~/Resources/Perspective-Button-Go-icon.png" Width="20px" Height="20px" /> 
        <ajaxToolkit:PopupControlExtender ID="pce" runat="server" TargetControlID="ibPopup" DynamicControlID="pToUpdate" 
         PopupControlID="pToExtend" DynamicContextKey='<%#Eval("id") %>' DynamicServiceMethod="GetDynamicContent"> 
        </ajaxToolkit:PopupControlExtender> 
        <asp:Panel runat="server" ID="pToExtend" BackColor="Red" style="display:none">Hello 
        <asp:Panel runat="server" ID="pToUpdate"> 
        </asp:Panel> 
        </asp:Panel> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField> 
       <ItemTemplate>       
        <asp:Label runat="server" ID="lidPopup" Text='<%=Eval("id") %>' /> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField> 
       <ItemTemplate>       
        <asp:Label runat="server" ID="lNamePopup" Text='<%=Eval("Name") %>' /> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField> 
       <ItemTemplate>       
        <asp:ImageButton CommandName="p" runat="server" ID="ibNotPopUp" ImageUrl="~/Resources/Perspective-Button-Go-icon.png" Width="20px" Height="20px" /> 
       </ItemTemplate> 
      </asp:TemplateField>             
     </Columns> 
     </asp:GridView> 
    </ContentTemplate> 
    </asp:UpdatePanel> 

これは、ページのウェブコードの背景:

public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 

    [System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()] 
    public static string GetDynamicContent(string contextKey) 
    { 
     StringBuilder sTemp = new StringBuilder(); 

     sTemp.Append(string.Format("<div>Cool! I'm {0}</div>", contextKey)); 

     return sTemp.ToString(); 
    } 
}   

  public partial class GridViewWithPopUpControl : System.Web.UI.UserControl 
    { 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      gvCars.DataBind(); 
     }  
    } 

    protected void gvCars_RowCommand(object sender, GridViewCommandEventArgs e) 
    { 
     if (e.CommandName == "Delete") 
     { 
      string t = e.CommandName; 
     } 
    } 

    protected void gvCars_DataBinding(object sender, EventArgs e) 
    { 
     GridView gv = (GridView)sender; 
     gv.DataSource = CarList.CarCollection; 
    } 
} 

それはかなり標準コードです...まだ期待どおりに動作しません:

これはユーザーコントロールの分離コードです。私はajaxtoolkitのアップグレードを考えていますが、Webサイトシステムの他の機能が壊れている可能性があるので、私はそれを考える必要があります。 もう一度ありがとうございます。

+0

問題が発生しているコードを投稿できますか? –

+0

** UpdatePanel **を使用して、** PopUp **に入れたいコントロールを保持しました** –

+0

私は、Popupを表示するのに必要なItemTemplateの中にUpdatePanelを入れようとしましたが、同じ問題が発生します。私はそれをデバッグすると、ポストバックが行われ(それはPage_Loadに入ります)、静的なWebメソッドを起動しません...私は別の(空の)ページ内にWebメソッドを置くことを考えましたが、どちらも助けてください。代わりに、ポップアップコントロール内のすべてのページをレンダリングします(コンテンツは2回表示されます)。 – lionheart

答えて

0

おそらく、ページメソッドはページにではなく、ユーザーコントロールにありました。 私はユーザーコントロールもページも書いていませんでしたが、機能を追加してその問題を発見するだけでした... -

関連する問題