将值播种到asp:controls

时间:2016-10-03 20:01:00

标签: c# asp.net

我在我的代码中对此问题感到困惑,并希望有人看到我在这里遗漏的内容。它的上半部分工作得很好,但是在下面另外两个类似字段上执行相同的基本代码却无法将值注入到文本框中,即使我已经把所有可能的东西都划掉了,这可能会抑制工作的功能。

我没有收到任何类型的错误,当我调试它时,值按预期分配。正如我所料,文本框中没有任何内容显示出来。

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");
}

2 个答案:

答案 0 :(得分:4)

你有拼写错误吗? uuname vs uname和uudate vs udate?

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");

答案 1 :(得分:0)

固定代码。这应该教一个关于复制和粘贴的课程。很容易错过一些东西。

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");
}