UpdatePanel + AsyncPostBackTrigger实现校验用户名是否可用

方法:让UpdatePanel之外的某个控件触发该UpdatePanel进行局部更新,采用AsyncPostBackTrigger触发器实现

 

TextBox(用户名控件)的声明:

<asp:TextBox ID="TextBoxUserName" runat="server" AutoPostBack="True" 
        ontextchanged
="TextBoxUserName_TextChanged"></asp:TextBox>

 

提示该用户名是否可用的控件Label以及UpdatePanel的声明:

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="TextBoxUserName" EventName="TextChanged" />
</Triggers>
    
<ContentTemplate>
         
<asp:Label ID="LabelAccountNote" runat="server" ForeColor="Red"></asp:Label>
    
</ContentTemplate>
</asp:UpdatePanel>

 

注意<Triggers>标签中的内容,AsyncPostBackTrigger两个属性:

ControlID:用来设定触发UpdatePanel更新的控件。

EventName:用来设定该控件上触发UpdatePanel更新的事件(这里设定为TextChanged事件。如果是对于Button控件,那么一般设置为Click事件)。

 

后台代码:

        protected void TextBoxUserName_TextChanged(object sender, EventArgs e)
        {
            
string userName = this.TextBoxUserName.Text.Trim();
            
//查询数据库,检验该用户名是否可用
            string sql = "select count(*) from UserAccount where UserName = @UserName";
            SqlParameter[] paras 
= new SqlParameter[1];
            paras[
0= new SqlParameter("@UserName", userName);
            
object o = DataAccess.ExcuteScalar_SQL(sql, paras);
            
int n = int.Parse(o.ToString());
            
if (n > 0)
            {
                
this.LabelAccountNote.Text = "该用户名已经存在,请换一个。";
            }
            
else
            {
                
this.LabelAccountNote.Text = "该用户名可以使用。";
            }
        }

 

 

    public class DataAccess
    {
        
public static object ExcuteScalar_SQL(string sql, SqlParameter[] parameters)
        {
            SqlConnection conn 
= GetConnection();
            SqlCommand cmd 
= new SqlCommand(sql, conn);
            
for (int i = 0; i < parameters.Length; i++)
            {
                cmd.Parameters.Add(parameters[i]);
            }
            conn.Open();
            
object o = cmd.ExecuteScalar();
            conn.Close();
            
return o;
        }
    }

posted on 2008-08-07 16:43  王丹小筑  阅读(648)  评论(0)    收藏  举报

导航