【发布时间】:2012-09-08 02:59:10
【问题描述】:
我是一名桌面客户端开发人员。我现在要继续这个项目是带有 AJAX 的 ASP.NET,所以我正在艰难地学习 Web 开发。
当用户单击 CmdSave 按钮时,我需要从 Summary.aspx 上的 repeater 控件获取所有复选框及其状态的列表ChoicePage.aspx。
我可以订阅 Summary.aspx 中的事件 CmdSave_Click() 吗?或者有什么方法可以从 ChoicePage.aspx 处理 Summary.aspx 的转发器控件?
(MSDN 在this 文章中谈到了在页面之间传递值,但这对我没有帮助)
问题来了: ChoicePage.aspx 页面包含在 Master AppMaster.master 页面中。 ChoicePage 有 Content 标签,其中包括 CmdSave 和它的事件处理程序 CmdSave_Click(),它还包括用于显示另一个页面的 iframe 标签,Summary .aspx
在 Summary.aspx 上,我有绑定到 DataSource 的转发器控件,相关字段的类型为 bool 类型,由可编辑 复选框 列表示。单击这些复选框不能导致 Summary.aspx 刷新,因此我不希望处理(服务器端)CheckedChanged 事件。
我不确定这里是否有任何代码示例会有所帮助,因为这更像是一个概念问题
function SetFrameStatus() {
var v = hdCommand.value.toString().toLowerCase();
hdCommand.value = "";
var frms = (GetFrameAll("FrameSummary"));
if (frms)
{ }
else return;
FrameSummary = frms[0];
DivSummary = FrameSummary.parentNode;
var FrameWindow = frms[1];
var FrameDocument = frms[2];
if (v == "showsummary") {
FrameWindow.location.replace(SummaryPageName);
}
}
<asp:Content ID="ContentSummary" ContentPlaceHolderID="NoUpdateDiv" runat="server">
<div id="DivMenu" class="Flat" style="overflow:visible; display:none;position:absolute;">
<input type="button" id="CmdSave" value="Save" onclick="CmdSave_Click()" />
</div>
<div id="DivSummary" style="position:absolute;margin:0px;padding:0px;display:none">
<iframe title="Loading" id="FrameSummary" marginheight="0px" marginwidth="0px" scrolling="auto"
style="padding:0px; margin:0px;width:auto;" src="loading.htm?Redirect=Summary.aspx" frameborder="0"
onload="FrameSummary_Load()"
></iframe>
</div>
【问题讨论】:
-
这最终解决了我的问题:在 CmdSave_Click() 函数中的 ChoicePage.aspx 上,我在 Summary.aspx 上调用了另一个函数。这个另一个函数做了 __dopostback("Repeater", "") 并且在我后面的代码中的 Render 事件上,我遍历了Repeater。我没有回答这个问题,因为我确信有更好的方法来做到这一点。祝大家编码愉快。
标签: asp.net iframe checkbox repeater content-pages