需求:在masterpage下的一个子页面(newpage.aspx)中有一个客户端的iframe控件,在该页面点击提交后,需要将iframe中的内容提交到后台数据库。
方法:先将iframe的value提交到一个hidden控件中,然后在得到。下面的代码在普通页面可以实现,但是在masterpage下面就不行了。。
newpage内容:
<asp:Content ID="Edit" ContentPlaceHolderID="CphMaster" Runat="Server">
    <asp:Label ID="lblTitle" runat="server" Text="页面标题"> </asp:Label>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <script src="JS/JNewPage.js" type="text/javascript"> </script>
    </head>
    <body>
        <form action="NewPage.aspx?act=add" method="post" name="form1" runat="server" id="frm" >
        <input type="text", ID = "TitleName",name ="TitleName",size ="'50" onchange= "TitleNamechange()"/>
        <div id ="TNresult"> </div>
        <ul id="FormatUl">
        <li> <a href="#" class="formatlink" id="BoldLink" title="加粗"> </a> </li>
        <li> <a href="#" class="formatlink" id="ItalicLink" title="斜体"> </a> </li>
        <li> <a href="#" class="formatlink" id="UnderlineLink" title="下划线"> </a> </li>
        </ul>
        <iframe id="HtmlEdit" name="HtmlEdit" style="WIDTH: 100%; HEIGHT: 296px" marginWidth=0 marginHeight=0 src="NewPage.aspx"> </iframe> 
        <asp:Button ID="savepage" runat="server" Text="提交" onclick="savepage_Click" />
        <input type="hidden" name="hidValue"/>
     
    </form>
 
    </body>
    </html></asp:Content>
newpage.cs:
    protected void Page_Load(object sender, EventArgs e)
    {
        savepage.Attributes.Add("onClick", "document.forms[0].hidValue.value=" + Server.HtmlEncode("HtmlEdit.document.body.innerHTML") + "");//这个地方我感觉错了,document.forms[0].hidValue.value得到的是空的值。
    }
    protected void savepage_Click(object sender, EventArgs e)
    {
        String str1 = String.Empty;
        str1 = Request.Form["hidValue"];//!!!!!!!!!!!!!!!!!!!!!!!这里显示是NULL。。!!!!!!!!!!!!!!!!!!!!!
        Response.Write(Server.HtmlDecode(str1));    }
求高手接到
我把工程放到http://dodohu.ys168.com/了,请各位帮忙看一下哈

解决方案 »

  1.   

    savepage.Attributes.Add("onClick", "document.forms[0].hidValue.value=" + Server.HtmlEncode("HtmlEdit.document.body.innerHTML") + "");//这个地方我感觉错了,document.forms[0].hidValue.value得到的是空的值。 savepage.Attributes.Add("onclick", "document.forms[0].hidValue.value=HtmlEdit.document.body.innerHTML;");试试
      

  2.   

    试过了 不行的说,不知道为啥 感觉问题还是出在masterpage上
      

  3.   


        <asp:Button ID="savepage" runat="server" Text="提交" onclick="savepage_Click" />
            <input type="hidden" name="hidValue"/> 
    改成
    <asp:Button ID="savepage" runat="server" Text="提交" OnClick="savepage_Click" OnClientClick="document.getElementById('hidValue').value='abc'" />
        <input type="hidden" name="hidValue" id="hidValue" />然后去掉Page_Load的代码
    试试能不能得到hidValue的值为'abc'
      

  4.   

    的不到hidValue的值为'abc',任然显示为空,已经去掉了Page_Load的代码。
      

  5.   

    str1 = Request.Form["hidValue"];//==============>str1 = Request["hidValue"];//