【发布时间】:2017-12-07 18:53:24
【问题描述】:
当文本框通过静态方法中的数据表对象获取数据时,它显示空值(即显示错误:对象引用未设置为对象的实例)。但是当我当时做调试模式时,它会显示数据表中的数据,所以我很困惑它是如何在文本框中获取空值的。
这是我的代码
[WebMethod]
public static void GetCnorGSTNo(string Param1)
{
Page page = (Page)HttpContext.Current.Handler;
TextBox cnorGST = (TextBox)page.FindControl("txtbx_cnortin");
DataAccess clsObjDataAccess = new DataAccess();
string qrySelCnorGtinNo = "select TinNo1 from CnorMaster where CnorName = '" + Param1 + "'";
DataTable dtqrySelCnorGtinNo = new DataTable();
dtqrySelCnorGtinNo = clsObjDataAccess.GetDataTable(qrySelCnorGtinNo);
if (dtqrySelCnorGtinNo.Rows.Count > 0)
{
cnorGST.Text = dtqrySelCnorGtinNo.Rows[0]["TinNo1"].ToString();
}
}
当我在调试模式下进行时
"dtqrySelCnorGtinNo.Rows[0]["TinNo1"].ToString();"
这一行显示数据
但是当这个数据被提供给文本框时,即cnorGST.Text,它显示一个错误,即对象引用未设置为对象的实例。
请帮我解决这个问题。
谢谢。
【问题讨论】:
-
Web 方法在页面生命周期的上下文之外运行,因此服务器上不存在控件。您无法访问它们。 stackoverflow.com/questions/31514188/…
-
有什么我可以访问的控件吗?因为无论数据表中的值是什么,我都想显示文本框。那我该怎么做呢?
-
你可以在web方法中访问数据库,只需在文本框中返回你想要显示的值。然后从客户端通过 javascript 分配此文本。
标签: c# asp.net datatable webmethod