大侠们,帮帮忙了.页面间的传值问题,弄半天了急啊

smnh511 2008-11-19 05:06:22
我有两个页面Message.aspx和UserSelect.aspx页面.
我想把UserSelect页面中的listbox控件中的人员信息,传到Message页面中的textbox中.不知道怎么弄了...

我的js代码如下(有错误,但不知道如何改了..):
//Message页面,经过button弹出UserSelect人员选择窗口
<script type="text/javascript">
function openChild()
{
var k = window.showModalDialog ("../UserSelect.aspx",window, "dialogWidth:395px;status:no;dialogHeight:495px");
}
</script>

//UserSelect页面,将值传到textbox控件上.
<script language="javascript" type="text/javascript">
var k = window.dialogArguments;
function setFather() {

}
</script>

帮看看,k.document.getElementById("lstSjr").value = document.getElementById("txtSxr").value 这句话我问题,应该怎么改?
...全文
222 36 打赏 收藏 转发到动态 举报
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
kmxzltt 2008-11-20
  • 打赏
  • 举报
回复
用楼上的方法不方便多了 有必要那么麻烦JS?
smnh511 2008-11-20
  • 打赏
  • 举报
回复
真的非常感谢tmxk2002 的回复,js还是没有成功啊,我就用Session弄了实在受不了啦哈哈.

这段代码我用了,不过for(int i = 0; i < lstsjrlist.length;i ++) 有问题,js里能直接用for吗,这个我不是很清楚啊.
我一直感觉,我的这个问题用js肯定能解决,但小弟js水平实在有限啊,一直不知道错在哪里.

function openChild()
{
var k = window.showModalDialog ("../UserSelect.aspx",null, "dialogWidth:395px;status:no;dialogHeight:495px");
document.getElementById("txtSxr").value = k;
}

function onclose()
{
var s = document.getElementById("lstSjr").value;
window.returnValue=s;
window.close();
}
我就发现红色标的地放就没有取到值,一直很郁闷啊.
wanghao2979 2008-11-20
  • 打赏
  • 举报
回复
js会的少...


我是来jf的
mrhu7002 2008-11-20
  • 打赏
  • 举报
回复
你直接后面跟参数传过去多省事呀
  • 打赏
  • 举报
回复
你是listbox?其实不管是什么你查看最后生成的html是什么样子,然后用js肯定能获取它的元素的,取出来就可以了。
  • 打赏
  • 举报
回复
如果你是checkboxlist
你到生成的html代码里看下它的所有checkbox的id是有什么规律,我记得用all可以获取的,或者是名称后面加上了$再加上一个序号?如果是这个,那段轮询获取值的代码你就改下,用一个循环先构造这个id,然后getelementbyid,再取value。
呵呵,好几年没弄js了,有些东西只要一些印象了。
  • 打赏
  • 举报
回复
//Message页面,经过button弹出UserSelect人员选择窗口
<script type="text/javascript">
function openChild()
{
var k = window.showModalDialog ("../UserSelect.aspx",null, "dialogWidth:395px;status:no;dialogHeight:495px");
document.getElementById("txtSxr").value = k;
}
</script>

//UserSelect页面,在你的关闭的按钮事件里加上
<script language="javascript" type="text/javascript">

function closewindow() {
var lstsjrlist = document.all["lstsjr"];
var retValue = "";
for(int i = 0; i< lstsjrlist.length;i ++)
{
retValue += listsjrlist[i].value;
}
window.returnValue = retValue;
window.close();
}
yourbutton.onclick = closewindow;
</script>

不好意思,前面那个是抄袭的你的,我现在改了下,红色标记的地方,不记得是document还是window了。你都看下
然后跟踪下document.getElementById("lstSjr").value 和retValue,看哪个有值
就用alert显示出来就可以了。
cs_cef 2008-11-20
  • 打赏
  • 举报
回复
Session Cookie QueryString 就沒一個適合非要js? 那就不要show個對話框,block個Div就好了嘛。
tangserver 2008-11-20
  • 打赏
  • 举报
回复
JS...好烦啊
wangzhenyue 2008-11-20
  • 打赏
  • 举报
回复
没有看懂..学习来了
smnh511 2008-11-20
  • 打赏
  • 举报
回复
同志们,listBox的值能直接传给textBox吗?
smnh511 2008-11-20
  • 打赏
  • 举报
回复
我试了,
//UserSelect页面,在你的关闭的按钮事件里加上
<script language="javascript" type="text/javascript">

function closewindow() {

window.close();
}
yourbutton.onclick = closewindow;
</script>


提示我K没有定义,K是在Message页面中定义的,在这里不定义行吗?
我把K去掉,window.returnValue = document.getElementById("lstSjr").value;换成这句话,我调试的时候,发现没有取到值..

window.close();我句话,不就是关闭窗口吗?怎么不管用呢?
smnh511 2008-11-20
  • 打赏
  • 举报
回复
多谢多谢~~
DemonAngle 2008-11-20
  • 打赏
  • 举报
回复
理解能力下降了。。。
ccyyss 2008-11-20
  • 打赏
  • 举报
回复

小地方修改后:
UserSelect.aspx页面

<script type="text/javascript"> 
function openChild()
{
var k = window.showModalDialog ("../Message.aspx",window, "dialogWidth:395px;status:no;dialogHeight:495px");
}
</script>

<asp:ListBox ID="lstSjr" runat="server">
<asp:ListItem Selected="True" Value="abc"> </asp:ListItem>
</asp:ListBox>
<input id="Button2" type="button" onclick="openChild()" value="button" />



Message.aspx页面 .(这里需要注意的是要把script的语句放到 txtSxr 后面
<input id="txtSxr" type="text" /> 
<script language="javascript" type="text/javascript">
var k = window.dialogArguments;
document.getElementById("txtSxr").value = k.document.getElementById("lstSjr").value;
</script>
ccyyss 2008-11-20
  • 打赏
  • 举报
回复
Message.aspx页面
<script type="text/javascript">
function openChild()
{
var k = window.showModalDialog ("../test2.aspx",window, "dialogWidth:395px;status:no;dialogHeight:495px");
}
</script>

<asp:ListBox ID="lstSjr" runat="server">
<asp:ListItem Selected="True" Value="abc"></asp:ListItem>
</asp:ListBox>

UserSelect.aspx页面.(这里需要注意的是要把script的语句放到 txtSxr 后面
<input id="txtSxr" type="text" />
<script language="javascript" type="text/javascript">
var k = window.dialogArguments;
document.getElementById("txtSxr").value = k.document.getElementById("lstSjr").value;
</script>
smnh511 2008-11-20
  • 打赏
  • 举报
回复
多谢指教~~小弟记下了呵呵
wazdoyang 2008-11-20
  • 打赏
  • 举报
回复
大叫一聲 給我傳回來 它就回來了
ilxl520 2008-11-20
  • 打赏
  • 举报
回复
看了3次还是没看懂。。。。
cs_cef 2008-11-20
  • 打赏
  • 举报
回复
你拿 document.getElementById("lstSjr").value 付給 document.getElementById("txtSxr").value ??!! 22樓的代碼思路是正確的,只是有點筆誤,把for里的int去掉或換成var js是弱類型的沒有int char這種東西,還有lstsjrlist 在for里寫成了 listsjrlist[i].value ,改過來就能執行了。 上論壇是要個邏輯不是代碼,至少不能要完整代碼。
加载更多回复(16)

62,269

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧