|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
国内有些大的CRM厂商的ASP就写得不错.无论是概念还是它里面用JAVASCRIPT的能力.并不是说现在的程序员用了ASP.NET来写程序就可以说自己高档了对话框 在一些使用中,但愿将形式对话框的值回送(PostBack)到办事端,也就是履行一个办事端操作,从而刷新页面。
举个例子:例如说新建一个定单,此时但愿能在形式对话框当选择产物,并将产物的ID前往,同时刷新定单中的产物项,处理的办法有多种,这里只引见履行办事器操作的办法。
要将客户端数据回送(PostBack)到办事端并履行响应操作,明显必需提交form并设置埋没域__EVENTTARGET的值,好在asp.net已为咱们完成了这些,只需以适合的参数挪用__doPostBack就能够了。
另外一个成绩是若何把形式对话框的值也传过办事端,这个就好说了,有多种办法,在这里用一个埋没域来保留值,固然这个埋没域必需加上runat="server"属性。
上面给出局部代码:
主页面TestDialog.aspx:
<form id="form1" runat="server">
<input type="hidden" id="txtValue" runat="server"/>
<br/>
<asp:LinkButton id="lbtnOpen" runat="server" text="翻开对话框"/>
<br/>
对话框前往值:<asp:TextBox id="txtValue2" runat="server"/>
</form>
主页面后置文件TestDiallg.aspx.cs:
private void Page_Load( object Sender, EventArgs e ) {
StringBuilder sb = new StringBuilder();
if ( ! IsClientScriptBlockRegistered( "clientScript" ) ) {
sb.Append( "<script language='javascript'>\n" )
.Append( " function addproduct() { \n" )
.Append( " var ret = window.showModalDialog( 'test2.aspx' ); \n" )
.Append( " if ( ret != undefined ) { \n" )
.Append( " document.getElementById('" + txtValue.ClientID + "').value = ret \n" )
.Append( " __doPastBack('" + lbtnOpen.UniqueID + "', '');\n" )
.Append( " } \n" )
.Append( " }\n " )
.Append( "</script>\n" );
RegisterClientScriptBlock( "clientScript", sb.ToString() );
}
lbtnOpen.Attributes.Add( "onClick", "javascript:addproduct();" );
}
private void lbtnOpen_Click( object Sender, EventArgs e ) {
txtValue2.Text = txtValue.Value;
}
private void InitializeComponent()
{
this.Load += new EventHandler( this.Page_Load );
this.lbtnOpen.Click += new EventHandler( this.lbtnOpen_Click );
}
对话框页面test2.aspx:
<form id="form1" runat="server">
<asp:TextBox id="txtValue" runat="server"/>
<br/>
<input type="button" id="hlnkOk" value="肯定" runat="server"/>
</form>
对话框页面后置文件Test2.aspx.cs
private void Page_Load( object Sender, EventArgs e ) {
StringBuilder sb = new StringBuilder();
if ( ! IsClientScriptBlockRegistered( "clientScript" ) ) {
sb.Append( "<script language='javascript'>\n" )
.Append( " function closedialog() { \n" )
.Append( " window.returnValue = document.getElementById('" + txtValue.ClientID + "').value;\n" )
.Append( " window.close();\n" )
.Append( " }\n " )
.Append( "</script>\n" );
RegisterClientScriptBlock( "clientScript", sb.ToString() );
}
hlnkOk.Attributes.Add( "onClick", "javascript:closedialog();" );
}
</p> ASP脚本是采用明文(plain text)方式来编写的。 |
|