我用window.showModalDialog()传了一个参数给弹出得对话框,在弹出对话框的</form>和</body>间写了这样一段去读参数        
<script language="javascript" type="text/javascript">
    var a = window.dialogArguments;
    form1.hidFieldResx.value = a[0];
    form1.hidFieldDataSet.value = a[1];
    form1.hidFieldValue.value = a[2];
    form1.hidFieldText.value = a[3];
</script>
hidFieldResx,hidFieldDataSet,hidFieldValue,hidFieldText都是HiddenField服务端控件
请问,为什么我在pageload的时候通过下列代码读不到这四个HiddenField的值
string str1 = this.hidFieldResx.Value;
string str2 = this.hidFieldDataSet.Value;
string str3 = this.hidFieldValue.Value;
string str4 = this.hidFieldText.Value;
我想再这个弹出窗口load得时候根据这些参数加载一个form,如果上述代码做不到的话,我该怎么做,请大家给些宝贵的意见,分不够还可以加!!!

解决方案 »

  1.   

    说错了,我想再这个弹出窗口load得时候根据这些参数加载一个datagrid得dataset
      

  2.   

    hidFieldResx在后台是可见的,在javascript可能不可见。
    <div style="display:none"><asp:textbox id="Textbox3" runat="server"></asp:textbox></div>
      

  3.   

    另想办法吧,
    js 控制那些hidden时,已经从服务器端返回了,page_load已经运行完了,
    就是说page_load时,js还没给付值了
    可以用url?a1=...&b1=.... 方式
    如果觉得不好,也可以用ajax, 或者,付值完再提交一次
      

  4.   

    你这样做,肯定是那不到值的。
    当你Open Modal窗体的时候。该窗体首先服务端执行.cs page_load, 然后才是你客户端的赋值代码。当你窗体再次刷新的时候,才会把hidden的值Post到服务断,这时候page_load 才拿到值。接下来解决办法:
    1。在.cs pageload的时候,拿到window.DialogArguments 这个我不太清楚asp.net 是否拿的到2。 用其他的传递方式,比如用Cookie或者用URL 串
      

  5.   

    我现在想得就是在.cs pageload的时候拿到window.DialogArguments,请问怎么做啊
      

  6.   

    用url否则你这么写也只有刷新一次得到的是前一次的值.
      

  7.   

    你可以这么做,window.showModalDialog ("dialog.htm",Array(iName.value,iColor(iColor.selectedIndex).value,something), "dialogWidth:20; dialogHeight:20")也就是URL。
    你可以看下这个:
    http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/nacWebteam06032002.mspx?mfr=true
      

  8.   

    用url是不是这样写?
    "window.open('../InnerPages/frmRefValContainer.aspx?test=1')"
    到弹出窗口的pageload中怎么用取到他呢?我写
    string resxFilePath = Request.QueryString["test"];但是值还是null啊?
      

  9.   

    Page_load()
    {
       Response.Expires = -1;
      
    }
      

  10.   

    因为执行服务器端的编译代码,HTML发送客户端后才会去执行Script代码.
    为什么不把值通过QueryString传过去.
      

  11.   

    我现在想得就是在.cs pageload的时候拿到window.DialogArguments,请问怎么做啊