简体   繁体   English

无法在中继器内的文本框中捕获下拉列表中的选定值

[英]Unable to catch the Dropdown selected value in a textbox inside a repeater

I have a DropDownList inside a repeater and whenever the selected text is changed, I have to show it in a TextBox but I'm getting Object reference not set to an instance of an object error 我在中继器中有一个DropDownList并且每当更改选定的文本时,都必须在TextBox显示它,但是我得到的Object reference not set to an instance of an object错误Object reference not set to an instance of an object

protected void Ddl_SelectedIndexChanged(object sender, EventArgs e)
{
    DropDownList ddl   = (DropDownList)  sender;
    RepeaterItem item  = (RepeaterItem)  ddl .NamingContainer;
    TextBox txt        = (TextBox) item.FindControl("TextBox4");
    txt.Text           = ddl.SelectedItem.Text;
}

Just enable Ddl dropdowns autopost back property to true and just add following line of code: 只需将Ddl下拉列表的autopost back属性设置为true,然后添加以下代码即可:

protected virtual void RepeaterItemCreated(object sender, RepeaterItemEventArgs e)
{
    DropDownList MyList = (DropDownList)e.Item.FindControl("ddl");
    MyList.SelectedIndexChanged += ddl_SelectedIndexChanged;
}

protected void Ddl_SelectedIndexChanged(object sender, EventArgs e)
 {
     RepeaterItem item  = (RepeaterItem)  Page.FindControl("repeatorid");
     TextBox txt        = (TextBox) item.FindControl("TextBox4");
     txt.Text           = ddl.SelectedItem.Text;     
 }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM