网页对话框怎么和服务器交互?

WanKee 2005-08-21 12:19:43
弹出网页对话框后,一和服务器交互,对话框就退出。
比如:用户在对话框选择部门,对话框更新显示部门员工供选择,该如何实现?
...全文
362 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
lk919 2006-04-05
  • 打赏
  • 举报
回复
mark
WanKee 2005-09-06
  • 打赏
  • 举报
回复
先接贴,攒够分再问
zeusvenus 2005-08-25
  • 打赏
  • 举报
回复
用showmodeldialog模态对话框。
codeangel 2005-08-25
  • 打赏
  • 举报
回复
5.里面的数据操作,写的是数据操作类。
明白这个思路就行
功能实现了winform里的全部功能
codeangel 2005-08-25
  • 打赏
  • 举报
回复
4.Persons.js

//人员选择
function sele()
{
var ltb;
var ltbyes;
var w;
var intvalue;
var m = sele.arguments;
ltb = document.getElementById(m[0]);
ltbyse = document.getElementById(m[3]);
intvalue = m[2];
var i;
w =(eval(ltb)).value;
if (w=="")
{
alert(m[1]);
return false;
}
else
{
var objSelect = document.all[m[0]];
var objAdd = document.all[m[3]];
// 取得字段值
var strName = objSelect.options[objSelect.selectedIndex].text;
var strValue = objSelect.options[objSelect.selectedIndex].value;
objAdd.options[objAdd.options.length] = new Option(strName,strValue,false,false);
objSelect.remove(objSelect.selectedIndex);
document.all.txtUser.value = "";
document.all.txtValue.value = "";
if (intvalue =='1')
{
for(i=0;i<objAdd.options.length;i++)
{
document.all.txtUser.value = document.all.txtUser.value + objAdd.options[i].value + ",";
document.all.txtValue.value = document.all.txtValue.value + objAdd.options[i].text + ",";
}
}
else
{
for(i=0;i<objSelect.options.length;i++)
{
document.all.txtUser.value = document.all.txtUser.value + objSelect.options[i].value + ",";
document.all.txtValue.value = document.all.txtValue.value + objSelect.options[i].text + ",";
}
}
}
return false;
}

function seleAll()
{
var ltb;
var ltbyes;
var w;
var intvalue;
var m = seleAll.arguments;
ltb = document.getElementById(m[0]);
ltbyse = document.getElementById(m[3]);
intvalue = m[2];
var i;
w =(eval(ltb)).options.length;
if (w==0)
{
alert(m[1]);
return false;
}
else
{
var j;
var objSelect = document.all[m[0]];
var objAdd = document.all[m[3]];
var strName;
var strValue;
for (j =0 ;j< w;j++)
{
// 取得字段值
strName = objSelect.options[j].text;
strValue = objSelect.options[j].value;
objAdd.options[objAdd.options.length] = new Option(strName,strValue,false,false);
document.all.txtUser.value = "";
document.all.txtValue.value = "";
if (intvalue =='1')
{
for(i=0;i<objAdd.options.length;i++)
{
document.all.txtUser.value = document.all.txtUser.value + objAdd.options[i].value + ",";
document.all.txtValue.value = document.all.txtValue.value + objAdd.options[i].text + ",";
}
}
else
{
document.all.txtUser.value = "";
document.all.txtValue.text = "";
}
}
/* for (i=0;i<w;i++)
{
objSelect.options[0]=null;
}*/
objSelect.innerHTML = "";
}
return false;
}
codeangel 2005-08-25
  • 打赏
  • 举报
回复
3.SelectPersons.cs里
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Text.RegularExpressions;
using HeFengSMS.Components;

namespace HeFengSMS.SubModule.SmsCenter
{
/// <summary>
/// SelectPersons 的摘要说明。
/// </summary>
public class SelectPersons : System.Web.UI.Page
{
protected System.Web.UI.WebControls.ListBox ltbNo;
protected System.Web.UI.WebControls.Button btn_addAll;
protected System.Web.UI.WebControls.Button btn_addOne;
protected System.Web.UI.WebControls.Button btn_delOne;
protected System.Web.UI.WebControls.Button btn_delAll;
protected System.Web.UI.WebControls.ListBox ltbYes;
protected System.Web.UI.WebControls.TextBox txtValue;
protected System.Web.UI.WebControls.DropDownList cboDept;
protected System.Web.UI.WebControls.TextBox txtUser;
Public Super=new Public();
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack )
{
Super.LoadList("SELECT * FROM Depts",cboDept,"DeptName","DeptNo","全部部门");
btn_addOne.Attributes.Add("onclick","return sele('ltbNo','请选择待选择用户','1','ltbYes')");
btn_delOne.Attributes.Add("onclick","return sele('ltbYes','请选择已选择用户','2','ltbNo')");
ltbNo.Attributes.Add("ondblclick","return sele('ltbNo','请选择待选择用户','1','ltbYes')");
ltbYes.Attributes.Add("ondblclick","return sele('ltbYes','请选择已选择用户','2','ltbNo')");
btn_addAll.Attributes.Add("onclick","return seleAll('ltbNo','请选择待选择用户','1','ltbYes')");
btn_delAll.Attributes.Add("onclick","return seleAll('ltbYes','请选择待选择用户','2','ltbNo')");
this.txtUser.Text=Request["sVal"].ToString();
this.txtValue.Text=Request["sTxt"].ToString();
Init_Data();
}

}
private void Init_Data()
{
ltbYes.Items.Clear();
if(txtUser.Text.Trim() !="")
{
int intNum = 0;
intNum = Regex.Split (txtUser.Text.Trim(),"\\,",RegexOptions.IgnoreCase).Length - 1;
int intJoin =0;
int intName = 0;
int i = 0;
int j = 0;
for(int m = 0; m<intNum;m++)
{
intJoin = txtUser.Text.IndexOf(",",i);
intName = txtValue.Text.IndexOf(",",j);
ltbYes.Items.Add(Server.UrlDecode(txtValue.Text.Trim()).Substring(j,intName -j));
ltbYes.Items[ltbYes.Items.Count -1].Value = txtUser.Text.Trim().Substring (i,intJoin - i);
i =intJoin + 2;
j =intName + 1;
}
}

string str;
if (ltbYes.Items.Count == 0)
{
Super.LoadList("select PersonName,personNo from Persons",ltbNo,"personName","personNo");
}
else
{
str = "select PersonName,personNo from Persons";
for (int i = 0;i<ltbYes.Items.Count;i++)
{
if(i ==0)
{
str = str + " where personNo <> '" + ltbYes.Items[0].Value + "'";
}
if (i >0)
{
str = str + " and personNo <> '" + ltbYes.Items[i].Value + "'";
}
}
Super.LoadList(str,ltbNo,"personName","PersonNo");
}

}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.cboDept.SelectedIndexChanged += new System.EventHandler(this.cboDept_SelectedIndexChanged);
this.btn_addOne.Click += new System.EventHandler(this.btn_addOne_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void cboDept_SelectedIndexChanged(object sender, System.EventArgs e)
{
ltbYes.Items.Clear();
if(txtUser.Text.Trim() !="")
{
int intNum = 0;
intNum = Regex.Split (txtUser.Text.Trim(),"\\,",RegexOptions.IgnoreCase).Length - 1;
int intJoin =0;
int intName = 0;
int i = 0;
int j = 0;
for(int m = 0; m<intNum;m++)
{
intJoin = txtUser.Text.IndexOf(",",i);
intName = txtValue.Text.IndexOf(",",j);
ltbYes.Items.Add(txtValue.Text.Trim().Substring(j,intName -j));
ltbYes.Items[ltbYes.Items.Count -1].Value = txtUser.Text.Trim().Substring (i,intJoin - i);
i =intJoin + 2;
j =intName + 1;
}
}
string strSql;
strSql = "select PersonName,PersonNo from persons";
if (ltbYes.Items.Count == 0)
{
if (cboDept.SelectedIndex !=0)
{
strSql = strSql + " Where DeptNo = '" + cboDept.SelectedItem.Value + "'";
}
Super.LoadList(strSql,ltbNo,"personName","personNo");
}
else
{
for (int i = 0;i<ltbYes.Items.Count;i++)
{
if(i ==0)
{
strSql = strSql + " where personNo <> '" + ltbYes.Items[0].Value + "'";
}
if (i >0)
{
strSql = strSql + " and personNo<> '" + ltbYes.Items[i].Value + "'";
}
}
if (cboDept.SelectedIndex !=0)
{
strSql = strSql + " and DeptNo = '" + cboDept.SelectedItem.Value + "'";
}
Super.LoadList(strSql,ltbNo,"personName","personNo");
}
}

private void btnCancel_Click(object sender, System.EventArgs e)
{
Page.RegisterStartupScript("","<script>window.opener=null;window.close();</script>");
}

private void btn_addOne_Click(object sender, System.EventArgs e)
{
ltbYes.Items.Add(ltbNo.SelectedItem.Text);
ltbYes.Items[ltbYes.Items.Count -1].Value = ltbNo.SelectedItem.Value;
Init_Data();
}


}
}
codeangel 2005-08-25
  • 打赏
  • 举报
回复
1.在父页里的选择点击按钮事件写
//弹出模态窗口,选择人员
string strTemp,strUrl;

strTemp="<script language=\"javascript\">";
strTemp+="";

strTemp+="var newwin = window.showModalDialog(";

strUrl="\'SelectPersons.aspx?sTxt="+Server.UrlEncode(this.txtPersonName.Text)+"&sVal="+this.txtPersonNo.Text+"'";

strTemp+=strUrl+",window,\"dialogWidth:500px;DialogHeight=350px;status:no;help:no;scroll:no\");";
strTemp+="</script>";


Page.RegisterStartupScript("",strTemp);
2.在SelectPersons.aspx里写
<%@ Page language="c#" Codebehind="SelectPersons.aspx.cs" AutoEventWireup="false" Inherits="HeFengSMS.SubModule.SmsCenter.SelectPersons" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>选择人员</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
<SCRIPT language="javascript" src="../../Scripts/Persons.js"></SCRIPT>
<LINK href="../../Styles/BasicLayout.css" type="text/css" rel="stylesheet">
<base target="_self">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<script language="javascript">
function ReturnValue()
{
var parwin = window.dialogArguments;

parwin.document.all.txtPersonName.value=document.all.txtValue.value;
parwin.document.all.txtPersonNo.value=document.all.txtUser.value;
window.close();


}
</script>
<TABLE id="Table1" style="BORDER-TOP: black 1px solid; Z-INDEX: 101; LEFT: 0px; BORDER-LEFT: black 1px solid; POSITION: absolute; TOP: 0px"
borderColor="#000000" height="300" cellSpacing="0" borderColorDark="#ffffff" cellPadding="0"
width="100%" bgColor="linen" border="1">
<TR>
<TD class="td3" style="HEIGHT: 22px" vAlign="bottom" align="center" bgColor="#006699"
colSpan="3"><font color="#ffffff" size="2">选择人员</font></TD>
</TR>
<TR>
<TD style="HEIGHT: 20px" colSpan="3"><FONT size="2">用户部门</FONT>
<asp:dropdownlist id="cboDept" runat="server" AutoPostBack="True" Width="100px" ForeColor="#006699"
Font-Size="12px"></asp:dropdownlist></TD>
</TR>
<TR>
<TD align="center"><FONT size="2">待选择用户</FONT></TD>
<TD> </TD>
<TD align="center"><FONT size="2">已选择用户</FONT></TD>
</TR>
<TR height="100">
<TD><asp:listbox id="ltbNo" runat="server" Width="100%" ForeColor="#006699" Height="200px"></asp:listbox></TD>
<TD width="10%">
<P align="center"><asp:button id="btn_addAll" runat="server" Width="43px" CssClass="redButtonCss" Text=">>"></asp:button><FONT face="宋体"><BR>
</FONT>
<asp:button id="btn_addOne" runat="server" Width="43px" CssClass="redButtonCss" Text=">"></asp:button><FONT face="宋体"><BR>
</FONT>
<asp:button id="btn_delOne" runat="server" Width="43px" CssClass="redButtonCss" Text="<"></asp:button><FONT face="宋体"><BR>
</FONT>
<asp:button id="btn_delAll" runat="server" Width="43px" CssClass="redButtonCss" Text="<<" BorderStyle="Groove"></asp:button></P>
</TD>
<TD><asp:listbox id="ltbYes" runat="server" Width="100%" ForeColor="#006699" Height="200px"></asp:listbox></TD>
</TR>
<TR>
<TD colSpan="3"><font color="red"> <FONT size="2">提示</FONT></font><FONT size="2">:双击当前项可填加/删除该项</FONT></TD>
</TR>
<TR>
<TD align="center" colSpan="3"><INPUT class="redButtonCss" style="WIDTH: 48px; HEIGHT: 20px" onclick="ReturnValue()" type="button"
value="确定" name="btnOK"> <INPUT class="redButtonCss" style="WIDTH: 47px; HEIGHT: 20px" onclick="javascript:window.close()"
type="button" value="取消" name="btnCancel"></TD>
</TR>
</TABLE>
  
<asp:textbox id="txtValue" style="Z-INDEX: 102; LEFT: 192px; POSITION: absolute; TOP: 352px"
runat="server"></asp:textbox><asp:textbox id="txtUser" style="Z-INDEX: 103; LEFT: 352px; POSITION: absolute; TOP: 352px" runat="server"></asp:textbox></form>
</body>
</HTML>
smile9961 2005-08-25
  • 打赏
  • 举报
回复
ShowModalDialog
yoyo83 2005-08-25
  • 打赏
  • 举报
回复
1:注册脚本
2:利用attributes
cityhunter172 2005-08-24
  • 打赏
  • 举报
回复
这个问题,其实很简单

出现此问题的原因的于
在模式对话框中提交给服务器时,会新开一个窗口

解决方案

在页面加上下列语句即可
<head>
<base target=_self>
</head>

如此一来,模式对话框就能向普通页面一样提交了
接下来的事,就不用我说啦
smile9961 2005-08-24
  • 打赏
  • 举报
回复
ChengKing(bantamweight)的方法不错。
rouser 2005-08-24
  • 打赏
  • 举报
回复
http://www.codeproject.com/useritems/modaldialoghelpercontrol.asp
WanKee 2005-08-23
  • 打赏
  • 举报
回复
zhilunchen 2005-08-23
  • 打赏
  • 举报
回复
用1楼的方法
或在后台代码里用DropDownList的SelectedIndexChanged事件!
sykpboy 2005-08-23
  • 打赏
  • 举报
回复
use xmlhttp.
ChengKing 2005-08-21
  • 打赏
  • 举报
回复
对话框用用户控件实现,并弹出窗口

this.Label.Text = "<a onclick=window.open('"+index.aspx?ContactNo="+strAutoID.ToString()+"','popuppage','width=400,height=380,top=130,left=200,scrollbars,resizable') style='CURSOR: hand'>"+e.Item.Cells[2].Text.ToString()+"</a>";
zhilunchen 2005-08-21
  • 打赏
  • 举报
回复
用JS控制部门下拉列表框的Change事件
极客行天下 2005-08-21
  • 打赏
  • 举报
回复
http://www.chinamacro.com/blog/visit_detail.aspx?blogID=92
WanKee 2005-08-21
  • 打赏
  • 举报
回复
WanKee 2005-08-21
  • 打赏
  • 举报
回复
我用showModalDialog做的,模式对话框,能具体一些么?

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧