从asp.net中的texbox获取价值

时间:2010-06-03 19:11:18

标签: c# asp.net .net-3.5 textbox

我有一个网页,其中包含多个面板(用于显示和隐藏各种文本框),一个特定的面板包含用于编辑记录的文本框。但是,当我准备更新表时,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属性如何以及为什么会解决这样的问题?

6 个答案:

答案 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上卸载任何文本框值。它导航空值。