问题描述
在后台查询出一个list的数据publicpartialclassDefault2:System.Web.UI.Page{publicIList<string>list{get;set;}publicvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){DataTabledt=newDataTable();DataColumndc1=newDataColumn("Name",Type.GetType("System.String"));dt.Columns.Add(dc1);DataRowdr1=dt.NewRow();dr1["Name"]="王八dfasdfa";dt.Rows.Add(dr1);DataRowdr2=dt.NewRow();dr2["Name"]="王九sdfsdf";dt.Rows.Add(dr2);DataRowdr3=dt.NewRow();dr3["Name"]="王十aaaaa";dt.Rows.Add(dr3);list=newList<string>();for(inti=0;i<dt.Rows.Count;i++){list.Add(dt.Rows[i]["Name"].ToString());}}}
然后前台用<divid="inputBox"width="120px"><inputtype="text"runat="server"id="s_custname"name="s_custname"onkeyup="keyup()"onfocus="show()"onchange="change()"onblur="hide()"/></div><!--onpropertychange="show()"--><divid="listBox"style="position:absolute;"><ul><%foreach(varstriteminlist){%><lionmousedown="setValue('<%=stritem%>')"><%=stritem%></li><%}%></ul></div>
循环绑定做成点击文本框出现选择列表的效果。然后现在要做的是根据文本框选择的数据传到后台查询相关的数据动态生成一个table显示到页面。请问我怎么做?求大神贴出代码。还有就是为什么只要页面上的button按钮被点击提交时,这个循环列表就会报错。
解决方案
解决方案二:
引用楼主qq_27283461的回复:
然后现在要做的是根据文本框选择的数据传到后台查询相关的数据动态生成一个table显示到页面。请问我怎么做?求大神贴出代码。还有就是为什么只要页面上的button按钮被点击提交时,这个循环列表就会报错。
1:报错应该是这句if(!IsPostBack){//...}引起的。点击按钮后,这个时候list 没有值。你这里的list绑定可以用Repeater控件,这样应该就不会出现报错的现象。2:生成table,可以试试当文本选择改变时,进行事件处理。
解决方案三:
1用C#拼装TABLE,然后页面输出2C#把数据封成json格式传送到页面,用JS遍历json再生成table
解决方案四:
if(!IsPostBack)这段去掉
解决方案五:
你可以用asp:table而不是table这样就可以后台代码给table添加tablerow和tablecell
解决方案六:
我只能说你的需求最终会因IsPostBack搞得很凌乱,从需求来选择解决方法,你适合用ajax或jquery根据文本框内容向后台请求数据,后台专门写个一般处理程序来负责前台请求的json数据,最重要的是用户的使用体验会更好,服务器的负担也相应减轻。
解决方案七:
引用5楼ajianchina的回复:
我只能说你的需求最终会因IsPostBack搞得很凌乱,从需求来选择解决方法,你适合用ajax或jquery根据文本框内容向后台请求数据,后台专门写个一般处理程序来负责前台请求的json数据,最重要的是用户的使用体验会更好,服务器的负担也相应减轻。
主要是没用过json数据,算是小白。