C#中的变量无法从html文本框中获取值
Posted
技术标签:
【中文标题】C#中的变量无法从html文本框中获取值【英文标题】:VARIABLE IN C# cant get the value from html text box 【发布时间】:2021-09-02 03:02:36 【问题描述】:我正在尝试在我的数据库中搜索订单,但我无法访问输入文本框中的文本 我已经尝试了一些我在这里和其他网站上看到的东西,并且变量无论如何都无法获得值
Asp.net
<div class="input-container">
<input type="text" id="txtSearch" runat="server" class="input-field" style="color: black;" placeholder="Pesquisar.."/>
<button id="btnsearch" class="wrapper" OnServerClick="btnsearch_Click" runat="server"><i class="fas fa-search" style="color:#8b9095;" ></i></button>
</div>
CS
protected void btnsearch_Click(object sender, EventArgs e)
con.Open();
var txtSearch = FindControl("txtSearch") as TextBox;
SqlCommand cmd = new SqlCommand("select DISTINCT No_ from [encomenda] where No_= @No_", con);
cmd.Parameters.AddWithValue("@No_", txtSearch);
SqlDataReader sdr = cmd.ExecuteReader();
if (sdr.Read())
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
sda.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
con.Close();
【问题讨论】:
直接用asp文本框试试? @VivekMishra 我不能因为我在 div 上使用的 css 类 无论如何都没有工作:/ 【参考方案1】:看到严重的错误...
首先,txtSearch
不是TextBox
,而是html input control
。所以这一行返回 null。
var txtSearch = FindControl("txtSearch") as TextBox;
正确的方法是
var txtSearchInput = FindControl("txtSearch") as HtmlInputText;
然后使用txtSearchInput.Value
或者你可以简单地使用txtSearch.Value
作为
protected void btnsearch_Click(object sender, EventArgs e)
con.Open();
SqlCommand cmd = new SqlCommand("select DISTINCT No_ from [encomenda] where No_= @No_", con);
cmd.Parameters.AddWithValue("@No_", txtSearch.Value);
SqlDataReader sdr = cmd.ExecuteReader();
if (sdr.Read())
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
sda.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
con.Close();
【讨论】:
以上是关于C#中的变量无法从html文本框中获取值的主要内容,如果未能解决你的问题,请参考以下文章