Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检测web表单ASP.NET C#中的控件?_C#_Asp.net - Fatal编程技术网

如何检测web表单ASP.NET C#中的控件?

如何检测web表单ASP.NET C#中的控件?,c#,asp.net,C#,Asp.net,ASPX: 错误: 此行中有错误: if(c.ID.StartsWith(“eng”)//对象引用未设置为对象的实例 这意味着form1找不到具有所述id的控件。请尝试更改为foreach(Page.Controls中的var c控件) P.S.Esko他对本地化的看法是正确的,你的做法是不正确的 下面是我所说的一个很好的例子:您必须使用一个技巧来实现这一点,因为代码显示异常,因为第一个控件呈现是没有id的literalControl,所以您必须使用以下代码传递它 protected void

ASPX:

错误: 此行中有错误:

if(c.ID.StartsWith(“eng”)//对象引用未设置为对象的实例


这意味着form1找不到具有所述id的控件。请尝试更改为
foreach(Page.Controls中的var c控件)
P.S.Esko他对本地化的看法是正确的,你的做法是不正确的


下面是我所说的一个很好的例子:

您必须使用一个技巧来实现这一点,因为代码显示异常,因为第一个控件呈现是没有id的
literalControl
,所以您必须使用以下代码传递它

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
        ChangeLanguage();
}
private void ChangeLanguage()
{
        foreach (var item in form1.Controls)
        {
            Control c = (Control)item;
            c.Visible = false;
            if (c.ID.StartsWith("eng")) //error : Object reference not set to an instance of an object.
            {
                c.Visible = true;
            }
        }
}
protected void Page_Load(object sender, EventArgs e)
{
        if (!IsPostBack)
            ChangeLanguage();
}

控件是动态创建的还是只需执行eng_lblContent.Visible=True?此外,你应该阅读有关本地化的信息,我在web表单中有很多控件,你只是想检测
标签
控件???@Usman,我有很多不同的控件type@andrey.shedko是否应该是
foreach(第页控件中的var c)
而不是
foreach(第页控件中的var c控件)
?@ekad,是,也可能是这样,只需要调用页面对象而不是form1。你错了。Literal control System.Web.UI类控件,因此它也有ID。@SamieyMehdi是指您提供的HTML是否完整??如果是,则不会显示任何错误
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
        ChangeLanguage();
}
private void ChangeLanguage()
{
        foreach (var item in form1.Controls)
        {
            Control c = (Control)item;
            c.Visible = false;
            if (c.ID.StartsWith("eng")) //error : Object reference not set to an instance of an object.
            {
                c.Visible = true;
            }
        }
}
protected void Page_Load(object sender, EventArgs e)
{
        if (!IsPostBack)
            ChangeLanguage();
}
if (c is LiteralControl)
    continue;
else
   {
     c.Visible = false;

     if (c.ID.StartsWith("eng")) 
     {
       c.Visible = true;
      }
    }