如何样在选择DropDownListRoomState不同值的时候实时更新LabelRoomType的值
怎么样在选择DropDownListRoomState不同值的时候实时更新LabelRoomType的值
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
namespace WebApplication1.houtaiasp
{
public partial class CheckIn : System.Web.UI.Page
{
DataConnect data = new DataConnect();
protected void Page_Load(object sender, EventArgs e)
{
//获取入住号
SqlConnection connID = data.GetConn();//新建链接
try
{
string sql1 = "select MAX(RUZHU_ID)+1 from checkinform";//定义查询入住表中最大的入住号并且+1
SqlCommand cmd1 = new SqlCommand(sql1, connID);
SqlDataReader sdr = cmd1.ExecuteReader();
if (sdr.Read())//是否读到数据
{
this.TextBoxCheckInID.Text = sdr.GetValue(0).ToString();//若读到数据,将数据赋值给TextBoxCheckInID
}
connID.Close();//关闭数据库连接
sdr.Dispose();//释放sdr
sdr.Close();//关闭sdr
}
catch (Exception ee)
{
Response.Write(ee.ToString());//返回异常信息
}
//获取可入住状态下的客房ID,并且根据客房ID获取房间类型
SqlConnection conn = data.GetConn();//新建链接
try
{
string strsql = "select R_ID from guestroom where R_STATE='可入住'";
SqlCommand scm = new SqlCommand(strsql, conn);
SqlDataReader sdr = scm.ExecuteReader();
DropDownListRoomState.DataTextField = "R_ID";
DropDownListRoomState.DataValueField = "R_ID";
DropDownListRoomState.DataSource = sdr;
DropDownListRoomState.DataBind();
string rid = this.DropDownListRoomState.SelectedValue;
this.LabelRoomType.Text = rid;
string sql2 = "select R_TYPE from guestroom where R_ID=" + rid;
SqlConnection conn2 = data.GetConn();
SqlCommand cmd2 = new SqlCommand(sql2, conn2);
SqlDataReader sdr2 = cmd2.ExecuteReader();
if (sdr2.Read())
{
this.LabelRoomType.Text = sdr2[0].ToString();
}
else
{
this.LabelRoomType.Text = "已经没有客房了";
}
}
catch (Exception eee)
{
Response.Write(eee.ToString());//返回异常信息
}
//获取当前登陆者身份,赋值给处理员工字段
object logined = Session["logined"];
if (logined == null)
{
this.Labelyuangong.Text = "";
}
else
{
if (logined.ToString().Equals("OK1"))
{
this.Labelyuangong.Text = Session["username"].ToString(); ;//获取当前登陆者姓名,赋值给Labelyuangong
}
else
{
this.Labelyuangong.Text = "";
}
}
}
protected void DropDownListRoomState_SelectedIndexChanged(object sender, EventArgs e)//在DropDownListRoomState选择一个项之后触发的事件,显示当前客房号对应的客房类型
{
string rid = this.DropDownListRoomState.SelectedValue;
this.LabelRoomType.Text = rid;
string sql2 = "select R_TYPE from guestroom where R_ID=" + rid;
SqlConnection conn2 = data.GetConn();
SqlCommand cmd2 = new SqlCommand(sql2, conn2);
SqlDataReader sdr2 = cmd2.ExecuteReader();
if (sdr2.Read())
{
this.LabelRoomType.Text = sdr2[0].ToString();
}
else
{
this.LabelRoomType.Text = "已经没有客房了";
}
}
protected void ButtonSure_Click(object sender, EventArgs e)//确认按钮事件
{
}
}
}
我现在的问题是:我在选择.DropDownListRoomState中不同选项的时候一并更新LabelRoomType的值,我说明一下,.DropDownListRoomState查询的是我数据库中客房状态为“可入住”的客房号,而我再根据这些客房号(在.DropDownListRoomState显示出来的)在LabelRoomType对应显示其客房类型,我上面写的我知道错在哪里,我在更改DropDownListRoomState索引激发事件时一并重新加载了页面,所以我一直查的是1006客房,对应的是大床房,我想问的是:怎么在选择DropDownListRoomState不同项的时候只更新LabelRoomType,有没有一种方法是只更新LabelRoomType的值呢?。。。。我表达可能有问题,还请各位帮帮忙,或者加我Q931237936
附上一张图:

------解决思路----------------------
添加客户端事件,在客户端选择房号之后,用ajax触发请求,从后端返回对应信息便可。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
namespace WebApplication1.houtaiasp
{
public partial class CheckIn : System.Web.UI.Page
{
DataConnect data = new DataConnect();
protected void Page_Load(object sender, EventArgs e)
{
//获取入住号
SqlConnection connID = data.GetConn();//新建链接
try
{
string sql1 = "select MAX(RUZHU_ID)+1 from checkinform";//定义查询入住表中最大的入住号并且+1
SqlCommand cmd1 = new SqlCommand(sql1, connID);
SqlDataReader sdr = cmd1.ExecuteReader();
if (sdr.Read())//是否读到数据
{
this.TextBoxCheckInID.Text = sdr.GetValue(0).ToString();//若读到数据,将数据赋值给TextBoxCheckInID
}
connID.Close();//关闭数据库连接
sdr.Dispose();//释放sdr
sdr.Close();//关闭sdr
}
catch (Exception ee)
{
Response.Write(ee.ToString());//返回异常信息
}
//获取可入住状态下的客房ID,并且根据客房ID获取房间类型
SqlConnection conn = data.GetConn();//新建链接
try
{
string strsql = "select R_ID from guestroom where R_STATE='可入住'";
SqlCommand scm = new SqlCommand(strsql, conn);
SqlDataReader sdr = scm.ExecuteReader();
DropDownListRoomState.DataTextField = "R_ID";
DropDownListRoomState.DataValueField = "R_ID";
DropDownListRoomState.DataSource = sdr;
DropDownListRoomState.DataBind();
string rid = this.DropDownListRoomState.SelectedValue;
this.LabelRoomType.Text = rid;
string sql2 = "select R_TYPE from guestroom where R_ID=" + rid;
SqlConnection conn2 = data.GetConn();
SqlCommand cmd2 = new SqlCommand(sql2, conn2);
SqlDataReader sdr2 = cmd2.ExecuteReader();
if (sdr2.Read())
{
this.LabelRoomType.Text = sdr2[0].ToString();
}
else
{
this.LabelRoomType.Text = "已经没有客房了";
}
}
catch (Exception eee)
{
Response.Write(eee.ToString());//返回异常信息
}
//获取当前登陆者身份,赋值给处理员工字段
object logined = Session["logined"];
if (logined == null)
{
this.Labelyuangong.Text = "";
}
else
{
if (logined.ToString().Equals("OK1"))
{
this.Labelyuangong.Text = Session["username"].ToString(); ;//获取当前登陆者姓名,赋值给Labelyuangong
}
else
{
this.Labelyuangong.Text = "";
}
}
}
protected void DropDownListRoomState_SelectedIndexChanged(object sender, EventArgs e)//在DropDownListRoomState选择一个项之后触发的事件,显示当前客房号对应的客房类型
{
string rid = this.DropDownListRoomState.SelectedValue;
this.LabelRoomType.Text = rid;
string sql2 = "select R_TYPE from guestroom where R_ID=" + rid;
SqlConnection conn2 = data.GetConn();
SqlCommand cmd2 = new SqlCommand(sql2, conn2);
SqlDataReader sdr2 = cmd2.ExecuteReader();
if (sdr2.Read())
{
this.LabelRoomType.Text = sdr2[0].ToString();
}
else
{
this.LabelRoomType.Text = "已经没有客房了";
}
}
protected void ButtonSure_Click(object sender, EventArgs e)//确认按钮事件
{
}
}
}
我现在的问题是:我在选择.DropDownListRoomState中不同选项的时候一并更新LabelRoomType的值,我说明一下,.DropDownListRoomState查询的是我数据库中客房状态为“可入住”的客房号,而我再根据这些客房号(在.DropDownListRoomState显示出来的)在LabelRoomType对应显示其客房类型,我上面写的我知道错在哪里,我在更改DropDownListRoomState索引激发事件时一并重新加载了页面,所以我一直查的是1006客房,对应的是大床房,我想问的是:怎么在选择DropDownListRoomState不同项的时候只更新LabelRoomType,有没有一种方法是只更新LabelRoomType的值呢?。。。。我表达可能有问题,还请各位帮帮忙,或者加我Q931237936
附上一张图:
------解决思路----------------------
添加客户端事件,在客户端选择房号之后,用ajax触发请求,从后端返回对应信息便可。