我有一个网页,其中包含多个面板(用于显示和隐藏各种文本框),一个特定的面板包含用于编辑记录的文本框。但是,当我准备更新表时,txtVendorName.Text.Trim()为空。
SqlConnection con = new SqlConnection(strConn);
string sqlUpdateVendor = "usp_Vendor_Update";
SqlCommand cmdUpdateVendor = new SqlCommand(sqlUpdateVendor, con);
cmdUpdateVendor.CommandType = CommandType.StoredProcedure;
cmdUpdateVendor.Parameters.Add(new SqlParameter("@RecID", SqlDbType.VarChar, 50));
cmdUpdateVendor.Parameters["@RecID"].Value = Request.QueryString["Rec_ID"];
cmdUpdateVendor.Parameters.Add(new SqlParameter("@empid", SqlDbType.VarChar, 11));
cmdUpdateVendor.Parameters["@empid"].Value = txtEmpIDNumber.Text.Trim();
cmdUpdateVendor.Parameters.Add(new SqlParameter("@VendorName", SqlDbType.VarChar, 100));
cmdUpdateVendor.Parameters["@VendorName"].Value = txtVendorName.Text.Trim();
代码不会抛出任何类型的错误。
知道文本框为什么不包含值?
好的,将提交按钮的PostBackURL属性设置为PageABC.aspx已解决该问题。任何人都知道postbackurl属性如何以及为什么会解决这样的问题?
答案 0 :(得分:0)
尝试使用调试器逐步执行此代码。看看是否有拼写错误。
答案 1 :(得分:0)
确保未在Load或PreRender事件中将txtVendorName.Text设置为空白而不检查ispostback
答案 2 :(得分:0)
这个代码什么时候被调用?在按钮上的事件?
记住ASP.NET页面生命周期非常重要。
http://msdn.microsoft.com/en-us/library/ms178472.aspx
http://www.15seconds.com/Issue/020102.htm
如果您在按钮上的某个事件中调用它,您可能会在周期的某个位置将其设置为空白。如果你在page_load中进行,请使用if(!Page.IsPostBack){}将其设置为空白,这样它只会在第一次加载页面时将其清空,而不是在你想要使用它之前在按钮事件中!
答案 3 :(得分:0)
您是否动态创建文本框?如果是这样,请确保你在init中这样做,页面生命周期有点挑剔,如果你在init之后创建它们(这是注册控件的时候),可能会导致你的文本框出现问题。
答案 4 :(得分:0)
好的,将提交按钮的PostBackURL属性设置为PageABC.aspx已解决该问题。任何人都知道postbackurl属性如何以及为什么会解决这样的问题?
答案 5 :(得分:0)
点击提交按钮时,第1点指向页面加载事件,然后按钮_click属性。
因此,如果要在页面加载..defi上卸载任何文本框值。它导航空值。