关于一个子窗体向父窗体传值的问题

西蒙君霸占阿花 西蒙君霸占阿花 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区


1 我的父窗体 是点击按钮打开一个窗体。


<asp:Button ID="btnChoseUnit" OnClientClick="javascript:OpenPopup();" runat="server"
Text="单位选择" />
<input type="hidden" id="txtUnitName" runat="server" />
<input type="hidden" id="txtUnitId" runat="server" />

js代码

<script type="text/javascript">
function OpenPopup() {

window.showModalDialog("TreeViewInfo.aspx", "List", "scrollbars=no,resizable=no,width=400,height=263");
}
function setValue(UnitName, UnitId) {
document.getElementById('txtUnitName').value = UnitName;
document.getElementById('txtUnitId').value = UnitId;
}
</script>


看了网上的好多参考,却不知道
<input type="hidden" id="txtUnitName" runat="server" />
<input type="hidden" id="txtUnitId" runat="server" />

这两个隐藏控件的用处。

2 我的子窗体是一个目录树


<input type="hidden" runat="server" id="txtUnitName" />
<input type="hidden" runat="server" id="txtUnitId" />
<div>
<asp:TreeView ID="TrView" Font-Bold="true" Font-Size="15px" runat="server" ImageSet="Contacts"
ShowCheckBoxes="All" OnTreeNodeCheckChanged="TrView_TreeNodeCheckChanged">
<ParentNodeStyle Font-Bold="False" />
<HoverNodeStyle Font-Underline="True" ForeColor="#5555DD" />
<SelectedNodeStyle Font-Underline="True" HorizontalPadding="0px" VerticalPadding="0px"
ForeColor="#5555DD" />
<NodeStyle Font-Names="Verdana" Font-Size="8pt" ForeColor="Black" HorizontalPadding="5px"
NodeSpacing="0px" VerticalPadding="0px" />
</asp:TreeView>
</div>
<div>
<asp:Button ID="btnUnitAdd" runat="server" Text="确认选择" OnClick="btnUnitAdd_Click" />
</div>
</form>


我看网上的参考就是 当点击确认选择的时候 给那两个隐藏控件赋值。

但是我不知道 需要给子窗体也弄两个隐藏控件不

我在网上找了一个参考


StringBuilder strUname = new StringBuilder();
StringBuilder strUnitId = new StringBuilder();
//组织的名字
string UnitName = string.Empty;
//组织Id
string UnitId = string.Empty;
foreach (TreeNode item in TrView.CheckedNodes)
{
if (item.Checked)
{
strUname.AppendLine(item.Text + ";");
strUnitId.AppendLine(item.Value + ";");

}

}
// function valueClose() {
// var UnitName = docment.getElementById('txtUnitName').value;
// var UnitId = docment.getElementById('txtUnitId').value;
// opener.setValue(UnitName, UnitId)
// window.close();
//}

StringBuilder s = new StringBuilder();
s.Append("<script language=javascript>" + "\n");
s.Append("var UnitName = docment.getElementById('txtUnitName').value;");
s.Append("var UnitId = docment.getElementById('txtUnitId').value;");
s.Append("opener.setValue('" + strUname + "', '" + strUnitId + "')");
s.Append("window.close();" + "\n");
s.Append("</script>");
Type cstype = this.GetType();
ClientScriptManager cs = Page.ClientScript;
string csname = "ltype";
if (!cs.IsStartupScriptRegistered(cstype, csname))
cs.RegisterStartupScript(cstype, csname, s.ToString());


我需要传的就只是 strUname 和 strUnitId 这两个值

但是 这个子窗体 不关 还报错

说页面脚本错误

我不知道 这个是不是能够取到值 求解决
...全文

相关推荐

评论 16
收藏 已收藏
分享
返回顶部
西蒙君霸占阿花
.NET社区 62,273 成员 668,968 内容