将值播种到控件中

本文关键字:控件 | 更新日期: 2023-09-27 18:11:24

我对我的代码中的这个问题感到困惑,希望有人看到我在这里缺少的东西。上面的部分工作得很好,但是在下面两个类似的字段上执行的相同的基本代码无法将值注入文本框中,尽管我已经排除了所有我能想到的可能会抑制该函数工作的东西。

我没有得到任何类型的错误,当我调试它时,值被按预期分配。正如我所期望的那样,文本框中没有显示任何内容。

protected void Page_Load(object sender, EventArgs e)
{
    <%-- This part works fine --%>
    TextBox uname = (TextBox)AddItemFv.Row.FindControl("SubmitByTbx");
    if (uname != null)
        uname.Text = Session["RegUser"].ToString();
    TextBox udate = (TextBox)AddItemFv.Row.FindControl("SubmitDTTbx");
    if (udate != null)
        udate.Text = DateTime.Now.ToString("MM/dd/yyyy");
    <%-- This part Fails to stuff the values into the TextBoxes --%>
    TextBox uuname = (TextBox)AddItemFv.Row.FindControl("AssetEnteredByTextBox");
    if (uname != null)
        uname.Text = Session["RegUser"].ToString();
    TextBox uudate = (TextBox)AddItemFv.Row.FindControl("AssetEnteredTextBox");
    if (udate != null)
        udate.Text = DateTime.Now.ToString("MM/dd/yyyy");
}

任何人看到的任何有用的东西都将不胜感激。过去几个小时我一直盯着它看,但什么也没找到。


基于响应提供的最终解决方案如下:

protected void Page_Load(object sender, EventArgs e)
{
   TextBox uname = (TextBox)AddItemFv.Row.FindControl("SubmitByTbx");
     if (uname != null)
        uname.Text = Session["RegUser"].ToString();
   TextBox udate = (TextBox)AddItemFv.Row.FindControl("SubmitDTTbx");
     if (udate != null)
        udate.Text = DateTime.Now.ToString("MM/dd/yyyy");
   TextBox uuname = (TextBox)AddItemFv.Row.FindControl("AssetEnteredByTextBox");
     if (uuname != null)
        uuname.Text = Session["RegUser"].ToString();
    TextBox uudate = (TextBox)AddItemFv.Row.FindControl("AssetEnteredTextBox");
      if (uudate != null)
         uudate.Text = DateTime.Now.ToString("MM/dd/yyyy");
}

将值播种到控件中

是不是打错字了?Uuname vs uname, Uuname vs updatate ?

TextBox **uuname** = (TextBox)AddItemFv.Row.FindControl("AssetEnteredByTextBox");
    if (**uname** != null)
        **uname**.Text = Session["RegUser"].ToString();
    TextBox **uudate** = (TextBox)AddItemFv.Row.FindControl("AssetEnteredTextBox");
    if (**udate** != null)
        **udate**.Text = DateTime.Now.ToString("MM/dd/yyyy");

修复代码。这应该是一个关于复制和粘贴的教训。我们很容易错过一些东西。

protected void Page_Load(object sender, EventArgs e)
{
<%-- This part works fine --%>
TextBox uname = (TextBox)AddItemFv.Row.FindControl("SubmitByTbx");
if (uname != null)
    uname.Text = Session["RegUser"].ToString();
TextBox udate = (TextBox)AddItemFv.Row.FindControl("SubmitDTTbx");
if (udate != null)
    udate.Text = DateTime.Now.ToString("MM/dd/yyyy");
<%-- This part Fails to stuff the values into the TextBoxes --%>
TextBox uuname = (TextBox)AddItemFv.Row.FindControl("AssetEnteredByTextBox");
if (uname != null)
    // correct from uname to uuname
    uuname.Text = Session["RegUser"].ToString();
TextBox uudate = (TextBox)AddItemFv.Row.FindControl("AssetEnteredTextBox");
if (udate != null)
    //Corrected from udate to uudate
    uudate.Text = DateTime.Now.ToString("MM/dd/yyyy");
}