关于javascript调用C#方法的变通实现

今天由于我用模态窗口(window.showModalDialog(参数)),在子窗口(模态窗口)对自身进行提交时,都会弹出一非模态的窗口,而我所做的只是提交本身,不需要再弹出窗口,于是,我在网上一直搜索关于这方面的解决方案,以下是我试过的方案,但均不凑效.
========================================================================
在你的主页面里:  
  <iframe   width=0   height=0   name=david1975   style="display:   none"   frameborder=0></iframe>   
  在你弹出的对话框页面里:  
  <form   target=david1975   ...>...  
  这样提交就不会有新的对话框产生,原页面也不会改变什么。
========================================================================
以及在主页面中加入一style.display:none的iframe等方法.
========================================================================

于是,我寻找javascript前台代码调用服务器后台C#事件的方案,但,由于一个为前台一个为后台,会受到访问限制,也失败了.如下面的访法
========================================================================
protected string CsharpVoid(string strCC)
{

 return strCC;

}

2.javascript 调用
<script  language="javascript">
  var s = "<%=CsharpVoid("www.esoutong.com")%>";  
  document.write(s);
</script>
========================================================================
1.后代码:
protected void CsharpVoid()
    {
        string strCC = "www.esoutong.com";
        Response.Write(strCC);

    }

2.调用方法:CsharpVoid()

<script  language="javascript">
document.write("<%CsharpVoid();%>");
</script>
========================================================================

最后,受于"可在页面中放一个按钮,把它设置为不可见style="display:none",然后,用脚本让此按钮点击
document.all("btnSave").click();
在此按钮的C#后台中写事件代码,这就是最简单的脚本调用C#方法. "的启发,于是只好变通的实现提交功能了.
页面:
<div id="div3" style=" display:none"><asp:Button ID="btnSave" runat="server" Text="Save" OnClick="btnSave_Click" /></div>
javascript函数中:document.getElementById("btnSave").click();
后台处理放在C#事件btnSave_Click中


此方法更简单:
怎样才让在showModalDialog和showModelessDialog的超连接不弹出新窗口?
在被打开的网页里加上<base target="_self">就可以了。这句话一般是放在<html>和<body>之间的。

posted on 2007-05-13 21:25  mingal  阅读(3886)  评论(0编辑  收藏  举报