总共有2个文本框,一个下拉框,刚开始只能看到一个文本框。当在这个文本框输入文字(只有当这个文字与数据库中字段的记录相同)时。显示出第二个文本框.当在第二个文本框中输入文字(只有当这个文字与数据库中字段的记录相同)时。显示出下对应的拉框(里面的内容与数据库中相对应)。
------------
这个用异步回调可以实现,
public partial class production_commission : System.Web.UI.Page,ICallbackEventHandler
///
///异步回调处理
///
private string _serverResult = ""; // 用于保存回调内容
public void RaiseCallbackEvent(string eventArgument)
{
DataTable mydt = ProductionPlanProc.GetCommissionProdByConId(eventArgument);
if (mydt.Rows.Count != 0)
{
_serverResult = "0" + "@" + "--请选择--";
}
foreach (DataRow row in mydt.Rows)
{
if (_serverResult.Equals(string.Empty))
{
_serverResult = row["prodId"] + "@" + row["prodName"].ToString();
}
else
{
_serverResult = _serverResult + "," + row["prodId"] + "@" + row["prodName"].ToString();
}
}
}
//返回数据结果
public string GetCallbackResult()
{
return _serverResult;
}//异步回调
function callServer(input,context)
{
//var arg = document.getElementById(input).value;
context.length = 0;
var arg = input.value;
<%= ClientScript.GetCallbackEventReference(this, "arg", "receiveServerData", "context")%>;
}
//接受服务器回传的数据
function receiveServerData(_serverResult, context)
{
context.length=0;
var arrData = _serverResult.split(",");
for (var i = 0; i < arrData.length; i++)
{
var data = arrData[i].split("@");
context.options[context.length]=new Option(data[1],data[0]);
}
}
</script>
onclick='callServer(this,prod"+i+")'(只有在文本框中输入 admin_name 字段的第一条记录才有效。。而我希望是输入这个字段的任一条记录都有效,(我的数据库字段是admin_name,比如它的记录有:aaa,bbb,ccc,ddd,┅,)我希望当文本框中输入bbb,ccc,ddd,┅都是能实现该功能的,这要怎么做啊,是不是要用到数组啊?)
--------------------
------------
这个用异步回调可以实现,
public partial class production_commission : System.Web.UI.Page,ICallbackEventHandler
///
///异步回调处理
///
private string _serverResult = ""; // 用于保存回调内容
public void RaiseCallbackEvent(string eventArgument)
{
DataTable mydt = ProductionPlanProc.GetCommissionProdByConId(eventArgument);
if (mydt.Rows.Count != 0)
{
_serverResult = "0" + "@" + "--请选择--";
}
foreach (DataRow row in mydt.Rows)
{
if (_serverResult.Equals(string.Empty))
{
_serverResult = row["prodId"] + "@" + row["prodName"].ToString();
}
else
{
_serverResult = _serverResult + "," + row["prodId"] + "@" + row["prodName"].ToString();
}
}
}
//返回数据结果
public string GetCallbackResult()
{
return _serverResult;
}//异步回调
function callServer(input,context)
{
//var arg = document.getElementById(input).value;
context.length = 0;
var arg = input.value;
<%= ClientScript.GetCallbackEventReference(this, "arg", "receiveServerData", "context")%>;
}
//接受服务器回传的数据
function receiveServerData(_serverResult, context)
{
context.length=0;
var arrData = _serverResult.split(",");
for (var i = 0; i < arrData.length; i++)
{
var data = arrData[i].split("@");
context.options[context.length]=new Option(data[1],data[0]);
}
}
</script>
onclick='callServer(this,prod"+i+")'(只有在文本框中输入 admin_name 字段的第一条记录才有效。。而我希望是输入这个字段的任一条记录都有效,(我的数据库字段是admin_name,比如它的记录有:aaa,bbb,ccc,ddd,┅,)我希望当文本框中输入bbb,ccc,ddd,┅都是能实现该功能的,这要怎么做啊,是不是要用到数组啊?)
--------------------
解决方案 »
- 字符串转换对象
- xmlhttp.onreadystatechange=ontext; ontext()这个函数为什么不被触发运行?怎是怎么回事?
- Jquery DOM Ajax 三者的关系是什么?
- igoogle的图片点击居中 怎么实现的???
- (求助)鼠标触发效果的代码简化
- confirm对话框的问题,急啊!!!!
- JAVASCRIPT变量赋值的问题
- 请问 各位怎样用JAVASCRIPT刷新,当我提交了一个FORM,然后在回到一个页面,
- jsp怎么实现选择部门了再去选择部门下的人员呢
- 为什么firefox收不到Nodejs的Json响应?
- 【javascript】【css】请高手解析下这段 经典二级菜单
- JavaScript 提问
1. 用Ajax提交到后台处理,如果网速慢,可能会不流畅2. 如果数据不多,也不是重要的数据,可以考虑先全部读出来,再用JS处理.
建议 如果是 固定的参数的话在js里用数组对比
或
转到页面时 就访问数据库 放到 js的数组里 (隐藏域加split实现)然后就不用每次访问数据库了 这样的话可以减轻点负担