我动态生成TextBox可以实现,然后文本框内容改变时出现一个ListBox,是动态生成的,我想让ListBox选中的内容显示在TextBox中,可是这个selectedindexchange事件不执行,我同样的做法,为什么TextBox_TextChanged就可以执行啊.
后来我在TextBox_TextChange()
{
toList((TextBox)sender,columntext,sblb);
if(ViewState["id"]!=null)
{
ListBox lb=(ListBox)this.ViewState["id"];
lb.SelectedIndexChanged +=new EventHandler(lib_SelectedIndexChanged);
}}private void toList(TextBox tb,string columntext,string sblb)
{
if(ViewState["id"]==null)
{
ListBox lib=new ListBox();
lib.EnableViewState=true;
string sel0="select csnr from hnsb_dm02 where csmc='"+columntext+"' and sblb='"+sblb+"'";
SqlCommand cmd0=new SqlCommand(sel0,myConnection);
cmd0.Connection.Open();
SqlDataReader dr0=cmd0.ExecuteReader();
lib.Items.Add("");
while(dr0.Read())
{
lib.Items.Add(dr0["csnr"].ToString());
}
dr0.Close();
cmd0.Connection.Close();
string top=tb.Style["TOP"];
int top_l=int.Parse(top.Substring(0,top.Length-2))+20;
top=top_l+"px";
lib.Attributes.Add("style","Z-INDEX: 101;POSITION: absolute; left:"+tb.Style["LEFT"]+";top:"+top);
lib.AutoPostBack=true;
ViewState["id"]=lib;
// lib.SelectedIndexChanged +=new EventHandler(lib_SelectedIndexChanged);
Panel1.Controls.Add(lib);
// Bind(lib,tb);
}
时,出现了如下错误:
类型“System.Web.UI.WebControls.ListBox”必须标记为 Serializable 或者具有 ReferenceConverter 以外的 TypeConverter,才能被放置在视图状态中。
后来我在TextBox_TextChange()
{
toList((TextBox)sender,columntext,sblb);
if(ViewState["id"]!=null)
{
ListBox lb=(ListBox)this.ViewState["id"];
lb.SelectedIndexChanged +=new EventHandler(lib_SelectedIndexChanged);
}}private void toList(TextBox tb,string columntext,string sblb)
{
if(ViewState["id"]==null)
{
ListBox lib=new ListBox();
lib.EnableViewState=true;
string sel0="select csnr from hnsb_dm02 where csmc='"+columntext+"' and sblb='"+sblb+"'";
SqlCommand cmd0=new SqlCommand(sel0,myConnection);
cmd0.Connection.Open();
SqlDataReader dr0=cmd0.ExecuteReader();
lib.Items.Add("");
while(dr0.Read())
{
lib.Items.Add(dr0["csnr"].ToString());
}
dr0.Close();
cmd0.Connection.Close();
string top=tb.Style["TOP"];
int top_l=int.Parse(top.Substring(0,top.Length-2))+20;
top=top_l+"px";
lib.Attributes.Add("style","Z-INDEX: 101;POSITION: absolute; left:"+tb.Style["LEFT"]+";top:"+top);
lib.AutoPostBack=true;
ViewState["id"]=lib;
// lib.SelectedIndexChanged +=new EventHandler(lib_SelectedIndexChanged);
Panel1.Controls.Add(lib);
// Bind(lib,tb);
}
时,出现了如下错误:
类型“System.Web.UI.WebControls.ListBox”必须标记为 Serializable 或者具有 ReferenceConverter 以外的 TypeConverter,才能被放置在视图状态中。
解决方案 »
- 如何debug aspx页面 <%# ... %> 中的代码?
- 为什么判断MIME内容无效? 依旧可以上传
- 如何在web.config文件中设置
- 在校学生应该做些什么项目?
- WriteableBitmap的跨域问题如何解决
- asp.net2程序的问题
- 显示新闻标题时,如何限定显法的字数?超过一定的字数时,后面加上...?
- 问问能不能不通过dataset来实现分页?
- 怎么遍历页面中某一类的控件,比如所有TextBox的?
- 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。在线等,谢谢!
- 我在厦门,想自己接单做些小网站挣点钱,请大家提出宝贵意见。谢谢!
- 判断一个变量是否是 整形 怎么写?
{
if(!ISPOstback)
{}
...
ListBox lb1=new ListBox();
lb1.Items.Add("aa");
lb1.Items.Add("bb");
lb1.AutoPostBack=true;
lb1.SelectedIndexChanged +=new EventHandler(lb_SelectedIndexChanged);
Panel1.Controls.Add(lb1);}
这样就可以实现lb_selectedindexchanged,可是将放在动态生成的TextBox的textchanged中为什么不可以呢
{
toControls();
if(!IsPostBack)
{
}
}
private void toControls(string table)
{
for(int i=0;i<5;i++){
Label lbb=new Label();
lbb.Text=lb[i].ToString();
lbb.EnableViewState=true;
Panel1.Controls.Add(lbb);
TextBox tbb=new TextBox();
tbb.ID=tb[i].ToString();
tbb.EnableViewState=true;
tbb.AutoPostBack=true; tbb.TextChanged +=new EventHandler(tbb_TextChanged);
Panel1.Controls.Add(tbb);
}
}
private void tbb_TextChanged(object sender, System.EventArgs e)
{
toList((TextBox)sender,columntext,sblb);
ListBox lb=(ListBox)Panel1.FindControl(ViewState["id"].ToString());
lb.SelectedIndexChanged +=new EventHandler(lib_SelectedIndexChanged);
}
private void toList(TextBox tb,string columntext,string sblb)
{
ListBox lib=new ListBox();
lib.EnableViewState=true;
lib.ID=tb.ID+"lb";
...
lib.Items.Add("");
while(dr0.Read())
{
lib.Items.Add(dr0["csnr"].ToString());
}
dr0.Close();
cmd0.Connection.Close();
lib.AutoPostBack=true;
ViewState["id"]=lib.ID ;
lib.SelectedIndexChanged +=new EventHandler(lib_SelectedIndexChanged);
Panel1.Controls.Add(lib);
}
private void lib_SelectedIndexChanged(object sender, System.EventArgs e)
{
Response.Write(((ListBox)sender).SelectedItem.Text);
}
帮我看一下问题出在哪里好吗