总共有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,┅都是能实现该功能的,这要怎么做啊,是不是要用到数组啊?) 
--------------------

解决方案 »

  1.   


    1. 用Ajax提交到后台处理,如果网速慢,可能会不流畅2. 如果数据不多,也不是重要的数据,可以考虑先全部读出来,再用JS处理.
      

  2.   

    用 onpropertyChange=""(貌似是这样写的我英文不好) 监听时间 然后用 js控制当相同的时候 后面的文本框用 style:display 来 控制显示 要是要访问数据库的话就用ajax 
    建议 如果是 固定的参数的话在js里用数组对比

    转到页面时 就访问数据库 放到 js的数组里 (隐藏域加split实现)然后就不用每次访问数据库了 这样的话可以减轻点负担