我写了一个上传的东西,结构如下:a.aspx页面里放置一个上传按钮,和一个隐藏的HtmlInputText(用来存放上传的附件的字符串,用逗号分隔)
单击a.aspx中的上传按钮,弹出一个showModalDialog。src为:b.aspx,此页面用来上传附件,并有个隐藏的单元格如下:
<TR>
<TD id="disImg"  runat="server"></TD>
</TR>
disImg.InnerHtml用来存放上传的字符串(每个附件已逗号分隔)单击本页面的确定按钮后,将附件字符串返回到a.aspx页面中的HtmlInputText。value。问题是,点击确定按钮后,上传的字符串能返回给HtmlInputText。value。当你再次点击上传按钮后,b.aspx也能接受,再次上传附件后,也能在b.aspx显示成功(原来的和新上传的都能显示),但是点击确定时返回的值还是原来的上传的附件字符串,新上传的附件的字符串没有返回过去。请高手帮忙!!!!
确定按钮的click如下:private void Button3_Click(object sender, System.EventArgs e)
{
disImg.InnerHtml = disImg.InnerHtml.Replace(",,",",");
if (disImg.InnerHtml==",")
{
disImg.InnerHtml="";
}
RegisterStartupScript("key", "<script>window.returnValue='"+Server.UrlEncode(disImg.InnerHtml)+"';window.opener=null;window.close(this);</script>");
}

解决方案 »

  1.   

    好像没什么错,
    试试用个textbox来代替TD 看看
      

  2.   

    我在上传和再次上传时,在b.aspx页面中我一直显示每一步的错作后disImg.InnerHtml的值,一切都是正常的。就是点击返回时,总是返回原来上传的附件的字符窜。我在a.aspx中写alert(a);显示,总是原来的。
      

  3.   

    你不应用“RegisterStartupScript”,而应用Page的另一个相似的注册函数,前者是注册在<body>标记之前。太困了,看不太清楚显示器了。试一下吧。
      

  4.   

    b.aspx最好在一个iframe中执行,这样就可以提交服务器
    返回值
    RegisterStartupScript("key", "<script>window。perant.returnValue='"+Server.UrlEncode(disImg.InnerHtml)+"';window.close(this);</script>");
    }