您好,如何在一个web表单中加载web表单div/
所以我有网页表单‘帐户’,这打开了内部的母版页。
在我的帐户网页表单,我有菜单,我想当用户点击它加载另一个网页内的帐户网页表单。
我正在使用ASP.NET C#。
很抱歉我的英语不好。
谢谢
发布于 2012-02-11 01:52:56
如果你想在服务器端做到这一点,可以通过加载一个用户控件的实例到你的表单而不是实际的页面来实现。Click here to see an MSDN example并确保使用更新面板来管理post backs。
如果您想要这样做,您可以通过ajax并调用ashx (处理程序文件)来管理此客户端:
在您的aspx文件中添加以下内容:
在标题中
<script type="text/javascript">
$(function () {
$("#panel").hide();
});
$(document).ready(function () {
$(".slide").click(function () {
$("#panel").show("slow", false);
jQuery.ajax({
type: "POST",
url: "controlloader.ashx",
dataType: "html",
success: function (response) {
jQuery('#loadcontrol1').append(response);
},
error: function () {
jQuery('#loadcontrol1').append('error');
}
});
});
});
</script>然后在身体内部
<body>
<form id="form1" runat="server" >
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<div id="panel" >
<p>stuff here</p>
</div>
<p><%= DateTime.Now %></p>
<div id="div1" class="slide">
<p class="btn-slide">Expand Panel</p>
</div>
<br />
<asp:Button Text="Click me" ID="clickButton" runat="server" />
<div id="loadcontrol1" />
</div>
</form>
</body>然后在您的ashx文件中
public class controlloader : IHttpHandler
{
//If annonymous id is turned on IRequireSessionState Interface may be needed to write session variabled such as user auth.
// Generic handlers by default implementIReadOnlySessionState
public void ProcessRequest (HttpContext context)
{
context.Response.ContentType = "text/plain";
context.Response.Write(RenderPartialToString("~/Control1.ascx")); ;
}
private string RenderPartialToString(string controlname)
{
Page page = new Page();
Control control = page.LoadControl(controlname);
page.Controls.Add(control);
StringWriter writer = new StringWriter();
HttpContext.Current.Server.Execute(page, writer, false);
return writer.ToString();
}
public bool IsReusable
{
get
{
return false;
}
}
}您还需要创建用户控制文件,但我将把该代码留给您。在这个例子中发生了一些事情。该按钮用于验证回发,以确保控件不会重新加载。我还添加了一个你不需要的动画,但这是我前段时间的一个旧的概念验证部分,所以你可以忽略这段代码。
我知道您提到了母版页的用户,因此您很可能希望将javascript提取到js文件中,然后确保使用脚本管理器加载它,如下所示:
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Scripts>
<asp:ScriptReference Path="~/js/jquery-1.7.js" />
<asp:ScriptReference Path="~/js/yourcontrolloader.cs" />
</scripts>
</asp:ScriptManager>当使用母版页时,这是必需的,否则由于服务器端渲染,您的引用将丢失,脚本将永远不会被调用。您也可以在实际页面与母版页中使用部分引用,但这取决于您。
祝你好运
https://stackoverflow.com/questions/9232075
复制相似问题