关于AJAX控件的问题
- C# code
private void CreatePanel() { AjaxControlToolkit.TabContainer tc = new AjaxControlToolkit.TabContainer(); string[] str = new string[9] { "M", "A", "B", "C", "D", "E", "F", "G", "H" }; int k = 0; foreach (DataRow dr in sql.GetDataSet("select * from Item").Tables[0].Rows) { k++; AjaxControlToolkit.TabPanel tp = new AjaxControlToolkit.TabPanel(); string name = dr["Item_Name"].ToString(); string html = ""; tp.HeaderText = dr["Item_Name"].ToString(); html += "<p style='padding-top:0px; padding-bottom:2px; padding-left:0px; margin-bottom:5px;'>"; html += dr["Item_Description"].ToString(); html += "</p>"; html += "<table border='0' cellpadding='0' cellspacing='1' bgcolor='#707b8d' width='547px'style=' margin-left:0px;font-size:11px;'>"; html += "<tr bgcolor='#edf1f3'>"; html += "<td align='center' height='22px' style='width:30px;'>"; html += "编号"; html += "</td>"; html += "<td align='center'valign='middle' style='width:120px;'>"; html += "项目名称"; html += "</td>"; html += "<td align='center'valign='middle' style='width:350px;'>"; html += "项目描述"; html += "</td>"; html += "<td align='center'valign='middle' style='width:55px;'>"; html += "需要打√"; html += "</td>"; html += "</tr>"; int b = 0; foreach (DataRow dr1 in sql.GetDataSet(string.Format("select * from Project where Item_Id={0}", int.Parse(dr["Item_Id"].ToString()))).Tables[0].Rows) { b++; html += "<tr bgcolor='#FFFFFF'>"; html += "<td align='center'>"; html += str[k].ToString() + b.ToString(); html += "</td>"; html += "<td>"; html += dr1["Name"]; html += "</td>"; html += "<td>"; html += dr1["Description"]; html += "</td>"; html += "<td align='center'>"; if ((bool)dr1["Status"]) { html += "<input id='Checkbox1' type='checkbox' checked=true />"; } else { html += "<input id='Checkbox1' type='checkbox' />"; } html += "</td>"; html += "</tr>"; } html += "</table>"; html += "<p style='padding-top:5px; padding-bottom:2px; padding-left:0px; margin-bottom:8px;'>"; html += "其他" + name + "(如需增加其他项目描述,请在下面填写)"; html += "</p>"; html += "<p>"; html += "<textarea id='TextArea1' cols='20' rows='2' style='width: 540px;height:50px;'>"; html += "</textarea>"; html += "</p>"; Label lb = new Label(); lb.Text = html; tp.Controls.Add(lb); tc.Controls.Add(tp); } AjaxControlToolkit.TabPanel tp1 = new AjaxControlToolkit.TabPanel(); tp1.HeaderText = "其他设备信息"; Label lbs = new Label(); lbs.Text = "如还有其他设备信息需要描述,请在下面填写"; TextBox tb = new TextBox(); tb.TextMode = TextBoxMode.MultiLine; tb.Height = 100; tb.Width = 540; tp1.Controls.Add(lbs); tp1.Controls.Add(tb); tc.Controls.Add(tp1); Panel1.Controls.Add(tc); }
我动态生成一个AJAX TabContainer 控件,但是我要怎么获取控件生成的 checkbox,textarea 的值,并能在后台.cs进行访问呢。
或者有其他的办法生成CheckBox,TextBox吗?只要能动态的生成和读取就行了,谢谢大家了。
[解决办法]
写javascript脚本异步发送到服务端通过requist获取数据再进行相应的操作
[解决办法]
http://www.360doc.com/content/080605/19/59179_1312206.htmlhttp://www.cnblogs.com/nasdaqhe/archive/2006/11/17/563592.html
百度:asp.net动态生成控件
[解决办法]
在服务器控件事件里面写
request.Form["你的客户端控件名称"]获取对应的控件值
[解决办法]
- C# code
private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 if(Session["p_userid"]==null||Session["p_loginName"]==null||Session["p_created"]==null) { Response.Write("<script>alert('请先登陆');location.href='../loginProc/login.aspx';</script>"); Response.End(); } else { Panel1.Controls.Add(new LiteralControl("<table>")); Panel1.Controls.Add(new LiteralControl("\n")); SqlCommand cmd=new SqlCommand("select infos.* from infos,infoGroups where infos.infoGroup_id = infoGroups.id and infoGroups.title='联系方式' order by infos.pri",connPartner); SqlDataAdapter da=new SqlDataAdapter(); DataSet ds=new DataSet(); da.SelectCommand=cmd; da.Fill(ds,"infos"); for (int i=0;i<ds.Tables[0].Rows.Count;i++) { Panel1.Controls.Add(new LiteralControl("<tr>")); TableCell cell = new TableCell();//创建单元格,也就是第一列 cell.Text=ds.Tables[0].Rows[i]["title"].ToString();//设置单元格内的文本 Panel1.Controls.Add(cell); Panel1.Controls.Add(new LiteralControl("<td>")); TextBox textBox=new TextBox(); textBox.ID="t"+ds.Tables[0].Rows[i]["id"].ToString(); Panel1.Controls.Add(textBox); Panel1.Controls.Add(new LiteralControl("</td>")); Panel1.Controls.Add(new LiteralControl("<td>")); Label lb=new Label(); lb.ID="l"+ds.Tables[0].Rows[i]["id"].ToString(); lb.Text=" "+ds.Tables[0].Rows[i]["tip"].ToString(); lb.CssClass="registerInfo"; Panel1.Controls.Add(lb); Panel1.Controls.Add(new LiteralControl("</td>")); Panel1.Controls.Add(new LiteralControl("</tr>")); Panel1.Controls.Add(new LiteralControl("\n")); } Button rebt=new Button(); rebt.ID="redirect"; rebt.Text=" 不填了 "; rebt.Click+=new EventHandler(rebt_Click); Panel1.Controls.Add(rebt); } }private void rebt_Click(object sender, EventArgs e) { Response.Redirect("../partnerProc/default.html"); }访问动态生成控件,可以通过FindControl方法,代码如下:for(int i=0;i<ds.Tables[0].Rows.Count;i++) { Label lb; lb=(Label)Panel1.FindControl("l"+ds.Tables[0].Rows[i]["id"].ToString()); if(lb!=null) { lb.Text=" "+ds.Tables[0].Rows[i]["tip"].ToString(); lb.CssClass="registerInfo"; } }