Scriptmanager在一个页面上,Panel在另一个页面上
本文关键字:Panel 另一个 一个 Scriptmanager | 更新日期: 2023-09-27 18:12:43
我有一个。master页面
<asp:ScriptManager ID="ScriptManager" runat="server" />
<asp:UpdatePanel runat="server" id="UpdatePanel" updatemode="Conditional">
<ContentTemplate>
<asp:ContentPlaceHolder ID="MasterIndhold_Member" runat="server">
</asp:ContentPlaceHolder>
在ContentPlaceHolder里面我有一个带有FileUpload的Panel。问题是FileUpload找不到文件。在这里,我想添加RegisterAsyncPostBackControl到Scriptmanager,但我如何做到这一点,当面板是在另一个页面?
嵌套页面代码如下所示
<asp:Content ID="Content3" ContentPlaceHolderID="MasterIndhold_Member" runat="server">
<asp:panel runat="server" ID="Panel_MyProfile_Member" Visible="false">
<asp:FileUpload ID="File1" runat="server" />
<asp:LinkButton ID="LinkUploadImageMember" runat="server" onclick="LinkUploadImageMember_Click">Upload</asp:LinkButton>
FileUpload的CodeBehind是这样的
protected void LinkUploadImageMember_Click(object sender, EventArgs e)
{
if (File1.HasFile == true)
{
if ((File1.PostedFile.FileName.EndsWith(".jpg")) || (File1.PostedFile.FileName.EndsWith(".jpeg")) || (File1.PostedFile.FileName.EndsWith(".png")))
{
byte[] input = File1.FileBytes;
Bruger.UploadImage(input, int.Parse(Request.QueryString["ID"]));
}
}
}
请保持代码示例c#和ASP。因为我是新手^^
谢谢
您也可以使用ScriptManagerProxy类,如果您需要在您的内容页面上的ScriptManager,但我不确定是否需要它。你真的需要在每个内容页上都有一个UpdatePanel吗?(因为您在母版页上声明了它)。我认为最好在内容页中声明UpdatePanel。
尝试为你的链接按钮定义一个触发器,否则HasFiles总是false
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:PostBackTrigger ControlID="LinkUploadImageMember" />
</Triggers>
<ContentTemplate>
<asp:FileUpload ID="File1" runat="server" />
<asp:LinkButton ID="LinkUploadImageMember" runat="server" Text=" upload " />
</ContentTemplate>
</asp:UpdatePanel>
如果你不能从母版页中删除UpdatePanel,你可以在母版页上公开一个属性,允许访问UpdatePanel,像这样:
public UpdatePanel MyUpdatePanel
{
get { return UpdatePanel1; }
}
从contentpage中,你可以访问更新面板并以编程方式更新触发器:
protected void Page_Load(object sender, EventArgs e)
{
((Site)Master).MyUpdatePanel.Triggers.Add(new PostBackTrigger() {
ControlID = LinkUploadImageMember.UniqueID });
}