0

您能否让我知道为什么以下代码不起作用,当调试器通过变量“strStatus”时我收到错误消息。错误消息是:“对象引用未设置为对象的实例。” 你能帮忙吗?谢谢-Yagya

    protected void Button1_Click(object sender, EventArgs e)
    {
        if (Y0130_chkNew.Checked == true)
        {
            bool isChecked = true; // This is required for later retrieval.

            string strAction = "Reporting";
            string strFromRole = ddSelectRole.SelectedValue;

            string TxtBoxID = myProject.getTextBox(strAction, strPath);
            TextBox txtb = new TextBox();
            txtb = (TextBox)Page.FindControl(TxtBoxID);
            string strStatus = txtb.Text;

            string ddID = myProject.getDropDown(strAction, strPath);
            DropDownList ddLst = new DropDownList;
            ddLst = (DropDownList)Page.FindControl(ddID);
            string strForwardRole = ddLst.SelectedValue;

            // Call the function now
            my.updateXML(strFromRole, strAction, strStatus, strForwardRole, strPath);

        }

    }
4

3 回答 3

0

您正在使用函数查找控件,并且可能会返回页面上不存在的文本框 id。请尝试调试并查看您从 myProject.getTextBox 函数获得的文本框 id 以及页面上是否存在。

于 2012-08-22T21:35:35.357 回答
0

Page.FindControl(TxtBoxID);返回 null 你的异常的原因是什么。FindControl不递归搜索控件,仅在给定的NamingContainer.

如果控件没有嵌套在NamingContainer页面上的另一个中(fe a GridViewRow),则根本没有理由使用,FindControl因为您可以直接引用它:

string strStatus = TextBox1.Text; // assuming TextBox1 is declared on the aspx

如果您使用MasterPages的不是页面NamingContainer中的控件,而是:ContentPageContenPlaceHolder

在页面上找不到文本框

于 2012-08-22T21:42:21.367 回答
0

最终代码: if (Y0130_chkNew.Checked == true)
{
string TxtBoxID = "Y0140_txtStatus"; 文本框 txtb = new TextBox();
txtb = (TextBox)Page.Master.FindControl("ContentPlaceHolder1").FindControl(TxtBoxID);
字符串 strStatus = txtb.Text;

            string ddID = "Y0150_ddOwnerRoleAssignment";
            DropDownList ddLst = new DropDownList();             
            ddLst = (DropDownList)Page.Master.FindControl("ContentPlaceHolder1").FindControl(ddID);            
            string strForwardRole = ddLst.SelectedValue;                       
        } 
于 2012-08-23T06:53:11.543 回答