我用.net的C#编写一个学生注册的网页,sql2000数据库,一个文本框txtstuid,规定只能输入14位数字,当输入第14位的数字后自动判断是否存在该学生数据,然后以表格显示学生信息,并进行注册。注册后自动清空文本框内容,并将光标定位在文本框上。

解决方案 »

  1.   

    onkeydown获取文本框值的长度,当为14的时候。可以调ajax方法但存在绑定数据问题,也可以直接调txtstuid的ontextchaege事件
      

  2.   

    txtstuid的ontextchaege事件textBox1.Text.Length
      

  3.   

    能不能说的明白点,我是菜鸟,很多术语不懂,能在txtstuid_TextChanged写出来么
      

  4.   

    参考一下这里。http://bingning.net/VB/SOURCE/index.html#control
      

  5.   

    textbox.Attibutus.Add("onkeydown","a()");
    在js函数里通过ajAx异步查询数据
      

  6.   


    用onkeydown事件或用onchange事件来判断是否是14为数字,是的话通过Ajax去绑定
      

  7.   

    哈哈。他们说的是 javascript . 你当然也可以开启文本框的 自动回送事件。
      

  8.   

    我想问一下keyPress事件在哪,貌似textbox的事件里没有啊
      

  9.   

    设置txtstuid的 AutoPostBack="true",如果是用的VS2008,直接支持AJAX,那么当输入完了14位的数字后,焦点一移开,就触发后台的txtstuid_TextChanged事件,这个事件你可以在WEB设计试图里添加,也可以使用在后台代码里添加:
            protected void Page_Load(object sender, EventArgs e)
            {
                txtstuid.TextChanged += new EventHandler(txtstuid_TextChanged);
            }
            void txtstuid_TextChanged(object sender, EventArgs e)
            {
                ......//要实现的方法
            }
    在“要实现的方法”中实现页面学生信息的查找及更新。显然支持AJAX的话,整个过程是很友善的,不然页面会消失一下。如果要自己写AJAX方法也可以,将返回信息封装在数组里或者XML节点,就是比较麻烦了。
      

  10.   


    这是html元素里的input标签拥有事件,不是服务器控件事件,TextBox最终还是解析到input标签的,所以你在ASPX页面里直接把那个事件添加上不会有问题的,执行的是JavaScript方法。
      

  11.   

    用textbox的TextChanged事件可以实现。
    if(txtstuid.text.length == 14)
    {
       进行数据查询
       返回数据集
       填充数据集中的数据表。
    }
    else
    {
      MessageBox.Show("您输入的学生ID位数不正确,请重新输入", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
      

  12.   

    看那么多还是不懂,附上基本代码,希望高手能给解决下
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="0201_admission.aspx.cs" Inherits="system_admissions_0201_admission" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>信息录入</title>
    <link href="../css/maincss.css" rel="stylesheet" type="text/css" />
    </head> 
    <body>
    <form id="form2" runat="server">
    <div id="main">
    <div class="maintitle">信息确认</div>
     <form id="form1" name="form1" method="post" action="">
      <div class="list">请输入考试号:
          <asp:TextBox ID="Txtid" runat="server" CssClass="txt" MaxLength="14" KeyUp="aa();" ></asp:TextBox>
          <asp:RangeValidator ID="RangeValidator1" runat="server" ErrorMessage="只能输入14位的数字" Type="Integer" ControlToValidate="Txtid" MaximumValue="9" MinimumValue="0"></asp:RangeValidator></div>
       <div class="bg">
           <asp:DataList ID="DListstu" runat="server">
               <ItemTemplate>
     <table>
         <tr>
           <td width="30%">姓名:</td>
           <td width="30%">
               <asp:Label ID="Labname" runat="server" Text='<%# Eval("StuName") %>'></asp:Label></td>
           <td rowspan="7">
               <asp:Image ID="Image1" runat="server" /></td>
           </tr>
         <tr>
           <td width="30%">考试号:</td>
           <td width="30%">
               <asp:Label ID="Labeid" runat="server" Text='<%# Eval("StuID") %>'></asp:Label></td>
         </tr>
         <tr>
           <td width="30%">系部:</td>
           <td width="30%">
               <asp:Label ID="Labdept" runat="server" Text='<%# Eval("DeptName") %>'></asp:Label></td>
         </tr>
         <tr>
           <td width="30%">性别:</td>
           <td width="30%">
               <asp:Label ID="Labsex" runat="server" Text='<%# Eval("Sex") %>'></asp:Label></td>
         </tr>
         <tr>
           <td width="30%">身份证号:</td>
           <td width="30%">
               <asp:Label ID="Lablis" runat="server" Text='<%# Eval("LinsenceId") %>'></asp:Label></td>
         </tr>
         <tr>
           <td width="30%">专业:</td>
           <td width="30%">
               <asp:Label ID="Labspece" runat="server" Text='<%# Eval("SpecName") %>'></asp:Label></td>
         </tr>
         <tr>
           <td width="30%">注册状态:</td>
           <td width="30%">
               <asp:Label ID="Labbq" runat="server" Text='<%# Eval("RegisteFlag") %>'></asp:Label></td>
         </tr>
       </table>
               </ItemTemplate>
           </asp:DataList>
        
       </div>
      <div class="update">
       
          <label></label>
      </div>
     <div class="update">
        <asp:Button ID="btnlock" runat="server" Text="锁定"  CssClass="btn" OnClick="btnlock_Click" /></div>
      <div class="update">
        <a href="#">返回</a>  </div>
     </form>
    </div>
    </form>
    </body></html>
      

  13.   

    这代码是怎么绑定的?Text=' <%# Eval("StuID") %>'居然可以取到数据,我佩服了。在没有DataSource的情况下,不能使用Eval或者Bind来上下文绑定的。应该是单独在后台cs文件中给每个Labe的Text属性赋值,而且很容易的呀,你自己测试赋值几个常量看看。当然要满足需求,需要自己写数据库连接方法来获取数据,别告诉我你只会绑定不会后台自己获取数据啊。