Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Событие массивов контролов


Автор: Yagmort 24.12.2010, 16:35
Тут дело в том, что мне в 1 событии надо присвоить уже от созданного элемента по выбору события, значение строковой переменной. Он пишет, что не задана ссылка на объект как быть ? 
Код

               static int masDDL = 30; 
        System.Web.UI.WebControls.DropDownList[] DDL= new System.Web.UI.WebControls.DropDownList[masDDL];

 public struct DDL1
        {
            public int numberDDL;
            public int left;
            public int top;
        }
 public DDL1 ddl(int numberDDL, int left, int top,string query, string field, string idfield, ref System.EventHandler eh)
        {
            
            for (int i = 1; i < masDDL; i++)
            {
                DDL[i] = new System.Web.UI.WebControls.DropDownList();
            }
            DDL[numberDDL].Style["position"] = "absolute";
            DDL[numberDDL].Style["top"] = Convert.ToString(top) + "pt";
            DDL[numberDDL].Style["left"] = Convert.ToString(left + 5) + "pt";
            DDL[numberDDL].Width = 130;
            CreateControls.LABLES ccl = new CreateControls.LABLES();
            ccl.obnov(DDL[numberDDL]);
            ccl.spisok(query, "DefaultView", field, idfield, DDL[numberDDL]);
            DDL[numberDDL].ID = "DDL" + Convert.ToString(numberDDL);
            DDL[numberDDL].SelectedIndexChanged += new System.EventHandler(eh);
            P1.Controls.Add(DDL[numberDDL]);
            
            DDL1 ddl = new DDL1();
            ddl.numberDDL = numberDDL;
            ddl.top = top;
            ddl.left = left;
            return ddl;
        }
protected void Page_Load(object sender, EventArgs e)
        {
if (flag1==1)
{
 System.EventHandler eh1 =new System.EventHandler(DDL_SelectedIndexChanged1);
                ddl(1, 5, 5, "SELECT * FROM [o].[dbo].[VO] GO", "na", "id_o",ref eh1);
 System.EventHandler eh2 =new System.EventHandler(DDL_SelectedIndexChanged2);
                ddl(2, 140, 5, "SELECT * FROM [o].[dbo].[VO] GO", "nb", "id_o",ref eh2);
 System.EventHandler eh3 =new System.EventHandler(DDL_SelectedIndexChanged3);
                ddl(3, 280, 5, "SELECT * FROM [o].[dbo].[VO] GO", "nc", "id_o",ref eh3);
}
}
        protected void DDL_SelectedIndexChanged1(object sender, EventArgs e)
        { string value;
           value = this.DDL[1].SelectedItem.Text; // ошибка тут
        }
        protected void DDL_SelectedIndexChanged2(object sender, EventArgs e)
        { MessageBox.Show("Ошибка2!!!"); }
        protected void DDL_SelectedIndexChanged3(object sender, EventArgs e)
        { MessageBox.Show("Ошибка3!!!"); }

Автор: Yagmort 24.12.2010, 16:51
 Он пишет, что не задана ссылка на объект как быть ? 

Автор: CYBERDREAM 24.12.2010, 22:34
Код

protected void DDL_SelectedIndexChanged1(object sender, EventArgs e)
        { 
           string value = ((DropDownList)sender).SelectedItem.Text; // ошибка тут
        }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)