私は、(私が定義した)ポップアップを開く必要がありますが、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サイトシステムの他の機能が壊れている可能性があるので、私はそれを考える必要があります。 もう一度ありがとうございます。
問題が発生しているコードを投稿できますか? –
** UpdatePanel **を使用して、** PopUp **に入れたいコントロールを保持しました** –
私は、Popupを表示するのに必要なItemTemplateの中にUpdatePanelを入れようとしましたが、同じ問題が発生します。私はそれをデバッグすると、ポストバックが行われ(それはPage_Loadに入ります)、静的なWebメソッドを起動しません...私は別の(空の)ページ内にWebメソッドを置くことを考えましたが、どちらも助けてください。代わりに、ポップアップコントロール内のすべてのページをレンダリングします(コンテンツは2回表示されます)。 – lionheart