求助!!急急急~~怎么在ASP.NET中实现:在一个文本框中输入编号,然后从数据库中查询对应的名称显示在另一个文本框中。
求助!!急急急~~怎么在ASP.NET中实现:在一个文本框中输入编号,然后从数据库中查询对应的名称显示在另一个文本框中。
例如:在txt_jsbh里面输入,输入完成以后,txt_jsxm文本框就显示从数据库里面查询出来的字段。
我已经在UpdatePanel里面都配置好了
单步执行中查看到变量已经变成了查询出来的值,前台就是不变。。无语。。代码如下
protected void txt_jsbh_TextChanged(object sender, EventArgs e)
{
string sql = "select * from CHS_KG_JSXX where CHS_KG_JSXX_ID='"+txt_jsbh.Text+"'";
DataSet ds = conn.GetDataSet(sql, "CHS_KG_JSXX");
if (ds.Tables["CHS_KG_JSXX"].Rows.Count <= 0 || ds.Tables["CHS_KG_JSXX"].Rows.Count > 1)
{
return;
}
else
{
txt_jsxm.Text = ds.Tables["CHS_KG_JSXX"].Rows[0]["CHS_KG_JSXX_NAME"].ToString();
}
}
前台的代码:
<tr>
<td align="right">
请输入教师编号:
</td>
<td>
<asp:TextBox ID="txt_jsbh" runat="server" AutoPostBack="true"
ontextchanged="txt_jsbh_TextChanged"></asp:TextBox>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
</td>
</tr>
<tr>
<td align="right" style="width:160px">
教师姓名:
</td>
<td class="style8">
<asp:TextBox ID="txt_jsxm" runat="server" />
</td>
<td class="style9">
</td>
</tr>
最好用AJAX解决。。如果JS的话,麻烦帮忙写一下代码。谢谢。我自己总共感觉少了一条刷新的语句。。。麻烦大家帮忙看下了
------解决方案--------------------前台
a页面利用js
先获取textbox 的值,再利用ajax 将值传到b页面,后台b页面request 请求获取这个参数,根据这个参数查询到对应的数据。
关键点:你需要将这些数据刷到缓存里面去。
Response.Flush();
Response.End();
这两句是关键,是将数据刷出去的。
最后 再在a页面获取缓存里的数据即可
------解决方案--------------------以上方法属于ajax 的思路,如果你不会那就算我白说了
------解决方案--------------------textbox的autopostback有没有设为true
------解决方案--------------------可以用Ajax ,是只一个页面啊,又没有让你用几个页面
------解决方案--------------------
<UpdatePanel>
<ContentTemplete>
<asp:TextBox ID="txt_jsbh" runat="server" AutoPostBack="true" ontextchanged="txt_jsbh_TextChanged"></asp:TextBox>
<asp:TextBox ID="txt_jsxm" runat="server" />
</ContentTemplete>
</UpdatePanel>
protected void txt_jsbh_TextChanged(object sender, EventArgs e)
{
txt_jsxm.Text="123";
}
先做个简单的,看看有没有效果
------解决方案--------------------if (ds.Tables["CHS_KG_JSXX"].Rows.Count <= 0 || ds.Tables["CHS_KG_JSXX"].Rows.Count > 1)
{
return;
}
else
{
txt_jsxm.Text = ds.Tables["CHS_KG_JSXX"].Rows[0]["CHS_KG_JSXX_NAME"].ToString();