public void GetTreeCheck(TreeView tv)
{
OleDbConnection conn = OleDb();
tv.Nodes.Clear();
using (OleDbCommand cmd = new OleDbCommand())
{
cmd.Connection = conn;
cmd.CommandText = "select * from DL";
cmd.CommandType = CommandType.Text;
DataSet ds = new DataSet();
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
da.Fill(ds);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
TreeNode tn = new TreeNode();
tn.Text = ds.Tables[0].Rows[i]["dlname"].ToString() + "<input type='checkbox'id='cbdl' runat='server' />"; //"<asp:CheckBox ID='CheckBox1' runat='server' />"+
tn.Value = ds.Tables[0].Rows[i]["ID"].ToString();
GetTreenodeCheck(tn);
tv.Nodes.Add(tn);
}
}
conn.Close();
}
动态生成树形菜单,我在TreeNode.Text里放了一个"<input type='checkbox'id='cbdl' runat='server' />
怎么样获取cbdl选中,
我用this.tvdl.Nodes.FindControl("cbdl") as CheckBox 找不到cbdl的控件..
高手帮忙简答下
{
OleDbConnection conn = OleDb();
tv.Nodes.Clear();
using (OleDbCommand cmd = new OleDbCommand())
{
cmd.Connection = conn;
cmd.CommandText = "select * from DL";
cmd.CommandType = CommandType.Text;
DataSet ds = new DataSet();
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
da.Fill(ds);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
TreeNode tn = new TreeNode();
tn.Text = ds.Tables[0].Rows[i]["dlname"].ToString() + "<input type='checkbox'id='cbdl' runat='server' />"; //"<asp:CheckBox ID='CheckBox1' runat='server' />"+
tn.Value = ds.Tables[0].Rows[i]["ID"].ToString();
GetTreenodeCheck(tn);
tv.Nodes.Add(tn);
}
}
conn.Close();
}
动态生成树形菜单,我在TreeNode.Text里放了一个"<input type='checkbox'id='cbdl' runat='server' />
怎么样获取cbdl选中,
我用this.tvdl.Nodes.FindControl("cbdl") as CheckBox 找不到cbdl的控件..
高手帮忙简答下
你可以在生成的页面先查看源文件,看一下
Nodes好像是指树的定一层节点
少了个<,怎么会这样。
应该怎么修改,帮下解决下。
就像1楼说的问题
Request.Form["cbdl"]用这种方式肯定能取到值
输出一下看看 是什么值
少了左<号..怎么会这样,该怎么解决啊 。
少了左 <号..怎么会这样,该怎么解决啊 。
把这里 tn.Text = ds.Tables[0].Rows[i]["dlname"].ToString() + " <input type='checkbox'id='cbdl' runat='server' />"; 的双引号改成单引号试试
换成
< input type='checkbox'id='cbdl' runat='server' >
试试
不可以,即使获取到值,还是不能判断ID为cbdl是否是选中的啊。
这样变成了 直接在页面显示的就是 <input type='checkbox'id='cbdl' runat='server' />
没有变成复选框了.
导致,先把ds.Tables[0].Rows[i]["dlname"].ToString() 用"test"代替试试.
生成<a id="tvdln0" href="javascript:TreeView_ToggleNode(tvdl_Data,0,tvdln0,' ',tvdln0Nodes)"><img src="/bastBuy/WebResource.axd?d=u0f6Q_ix0WC5yQFJkNE3XVvNZgx0PNYSmWXqNAnsmUM1&t=633888882800000000" alt="展开 BizModule 1 Furniture for Home<input type='checkbox'id='cbdl' runat='server'>" style="border-width:0;" /></a>是不是&这里出了问题?如果是,应该怎么修改,我现在知道怎么取值和判断选中了。
就是转义成了<input type='checkbox'id='cbdl' runat='server' />
但页面又是显示复选框的
帮下忙,谢谢
你在Text里写控件,是不能加runat=server的至于在后台取值,必须这么写:
<input type='checkbox' id='cbdl' name='cbdl' value='abc' />那么在后台用Request.Form["cbdl"]取值,
如果选中,Request.Form["cbdl"]就等于abc
没选中,Request.Form["cbdl"]就等于空
string test = ds.Tables[0].Rows[i]["dlname"].ToString();
tn.Text = test + "<input type='checkbox'id='cbdl' runat='server'>";
你是说这样吗?
我改了试了下,还是一样。<转成<
加个runat="server"是没问题的,问下你是哪里的,这女的好像很熟..
问题是我的TreeNode是动态生成的,这块必须要加上一个复选框,满足客户要求的。
只要在源文件是<input type='checkbox'id='cbdl' runat='server'>
而不是<input type='checkbox'id='cbdl' runat='server'>
如果是<input type='checkbox'id='cbdl' runat='server'>
我已经找过办法了.
HtmlInputCheckBox cb = this.Page.FindControl("cbd") as HtmlInputCheckBox;
这样就可以取到.
Request.Form["cbdl"]就找不到了。
现在问题不是取值。
是<input type='checkbox'id='cbdl' runat='server'>在源文件显示
<input type='checkbox'id='cbdl' runat='server'>