repeater 控件中的checkboxlist 不显示

一刀封喉 2014-09-08 04:48:49
话不多说,直奔正题
如图是想要的效果:



代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Configuration;
using System.Data;
using System.Data.SqlClient;

public partial class newadmin_test4 : System.Web.UI.Page
{
private string _connstring = WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
get_lv1_data();
}
}

protected void get_lv1_data()
{
SqlConnection con = new SqlConnection(_connstring);
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "select * from pro_category where pid=@pid order by shunxu";
cmd.Parameters.AddWithValue("@pid", 0);

SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataSet dst = new DataSet();
using (sda)
{
sda.Fill(dst);
}

lv1.DataSource = dst;
lv1.DataBind();
}
public DataSet lv2data(object lv1id)
{
SqlConnection con = new SqlConnection(_connstring);
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "select * from pro_category where pid=@pid order by shunxu";
cmd.Parameters.AddWithValue("@pid", lv1id);

SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataSet dst = new DataSet();
using (con)
{
con.Open();
sda.Fill(dst);

}
return dst;

}
public DataSet lv3data(object lv2id)
{
SqlConnection con = new SqlConnection(_connstring);
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "select * from pro_category where pid=@pid order by shunxu";
cmd.Parameters.AddWithValue("@pid", lv2id);

SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataSet dst = new DataSet();
using (con)
{
con.Open();
sda.Fill(dst);

}
return dst;

}


}



前台页面:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test4.aspx.cs" Inherits="newadmin_test4" %>

<html lang="en">
<head>
<meta charset="utf-8">
<title>sf</title>

</head>
<body>
<form id="form1" runat="server">
<ul>
<asp:Repeater ID="lv1" runat="server">
<ItemTemplate>
<li>
<div class="div_lv1"><span class="label_lv1"><%#Eval("categoryname") %>(<%#Eval("shunxu") %>)</span><br class="clear" /></div>
<ul class="ul_lv2">
<asp:Repeater ID="lv2" runat="server" DataSource='<%# lv2data(Eval("id")) %>'>
<ItemTemplate>
<li>
<div class="div_lv2"><span class="label_lv2"><%#Eval("categoryname") %>(<%#Eval("shunxu") %>)</span><br class="clear" />
<ul class="ul_lv3">
<asp:Repeater ID="lv3" runat="server" DataSource='<%# lv3data(Eval("id")) %>' >

<ItemTemplate>


<asp:CheckBoxList ID="CheckBoxList1" runat="server" DataTextField='<%#Eval("categoryname") %>' DataValueField='<%#Eval("id") %>'> </asp:CheckBoxList>


</ItemTemplate>
</asp:Repeater>

</ul>
</div><br class="clear" />
</li>

</ItemTemplate>

</asp:Repeater>

</ul>

</li>

<br class="clear" />
</ItemTemplate>
</asp:Repeater>
</ul>


</form>
</body>
</html>
...全文
177 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你还是用ztree吧: http://www.ztree.me/v3/main.php#_zTreeInfo 先解决问题,然后在讨论问题。
一刀封喉 2014-09-09
  • 打赏
  • 举报
回复
大神何在? 都说.net 水平低,其实.net 入门容易,精通也很难,像我们这种没时间上专业培训课的遇到问题缺乏交流的渠道,csdn 搞个悬赏就好了
一刀封喉 2014-09-09
  • 打赏
  • 举报
回复
如果把最里层 checkboxlist 换成 checkbox ,那就没问题了,但是 checkbox 无法绑定 2个数据,1个id,1个name,二者缺一不可,否则 下一步取值会遇到问题
myhope88 2014-09-09
  • 打赏
  • 举报
回复
你这样设计感觉也不太对呀
叫我 Teacher 周 2014-09-09
  • 打赏
  • 举报
回复
如果你是嵌套在控件里的话,你需要用ItemBound事件,然后再去用FindControl找到你的Checkbox,才去绑定
sy401042879 2014-09-09
  • 打赏
  • 举报
回复
引用 4 楼 yidaofenghou 的回复:
[quote=引用 3 楼 touzilk 的回复:] http://bbs.csdn.net/topics/390880208这是你的帖子?你换个思路啊,老这种死抠怎么行
这是最容易实现的了,但是代码哪里有点问题[/quote] 你用了3个Repeater,前台第二,第三个Repeater数据源绑定,那样写可能是有问题的(具体我没测试),而且我个人观点不赞成那样嵌套。你这个其实很简单,我给你个思路吧。 1:数据库3个相同的表查询数据,获取数据源

select 需要绑定的字段... from pro_category t1 inner join pro_category t2 on t1.id=t2.pid inner join pro_category t3 on t2.id=t3.pid where t1.pid=0
2:绑定一个Repeater即可。 这样岂不是更舒服。不用写3遍后台绑定的代码,一个绑定代码即可。
  • 打赏
  • 举报
回复
或者把chekcboxList换成 <asp:CheckBox ID="CheckBox1" runat="server" Text='<%#Eval("categoryname") %>' Value='<%#Eval("id") %>'></asp:CheckBox>
  • 打赏
  • 举报
回复
你用了
引用 6 楼 yidaofenghou 的回复:
如果把最里层 checkboxlist 换成 checkbox ,那就没问题了,但是 checkbox 无法绑定 2个数据,1个id,1个name,二者缺一不可,否则 下一步取值会遇到问题
你用了checkboxlist的数据绑定方式,它本身就会像repeater那样,循环数据源,产生多个checkbox的 所以要把<asp:Repeater ID="lv3" 这个去掉,把它的数据源直接绑到checkboxlist
叫我 Teacher 周 2014-09-09
  • 打赏
  • 举报
回复
你缺一个 DataValueField和DataTextField
一刀封喉 2014-09-09
  • 打赏
  • 举报
回复
哎!!!大神呢
一刀封喉 2014-09-08
  • 打赏
  • 举报
回复
引用 3 楼 touzilk 的回复:
http://bbs.csdn.net/topics/390880208这是你的帖子?你换个思路啊,老这种死抠怎么行
这是最容易实现的了,但是代码哪里有点问题
手可摘星辰 2014-09-08
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/390880208这是你的帖子?你换个思路啊,老这种死抠怎么行
手可摘星辰 2014-09-08
  • 打赏
  • 举报
回复
你这个用repeater有点累吧,要是7、8级你不就废了
一刀封喉 2014-09-08
  • 打赏
  • 举报
回复
不好意思,没打完,手一抖发布了 以上代码达不到我要的效果,但是又检查不出来哪的问题,请指教
第一部分 构建ASP.NET页面 第1章 ASP.NET Framework概览 2 1.1 ASP.NET和.NET Framework 5 1.1.1 框架类库 5 1.1.2 公共语言运行库 9 1.2 ASP.NET控件 10 1.2.1 ASP.NET控件概览 11 1.2.2 HTML控件 12 1.2.3 理解和处理控件事件 12 1.2.4 视图状态 17 1.3 ASP.NET页面 20 1.3.1 动态编译 20 1.3.2 控件树 23 1.3.3 使用代码隐藏页面 24 1.3.4 处理页面事件 27 1.3.5 使用Page.IsPostBack属性 29 1.3.6 调试和跟踪ASP.NET页面 30 1.3.7 跟踪页面执行 33 1.4 安装ASP.NET Framework 35 1.5 小结 37 第2章 使用标准控件 38 2.1 显示信息 38 2.1.1 使用Label控件 38 2.1.2 使用Literal控件 42 2.2 接收用户输入 44 2.2.1 使用TextBox控件 44 2.2.2 使用CheckBox控件 50 2.2.3 使用RadioButton控件 52 2.3 提交表单数据 55 2.3.1 使用Button控件 55 2.3.2 使用LinkButton控件 57 2.3.3 使用ImageButton控件 59 2.3.4 Button控件使用客户端脚本 62 2.3.5 执行跨页面发送 64 2.3.6 指定默认按钮 67 2.3.7 处理Command事件 68 2.4 显示图像 70 2.4.1 使用Image控件 70 2.4.2 使用ImageMap控件 71 2.5 使用Panel控件 75 2.6 使用HyperLink控件 79 2.7 小结 81 第3章 使用验证控件 82 3.1 验证控件概述 82 3.1.1 验证控件与JavaScript 85 3.1.2 使用Page.IsValid 85 3.1.3 设置Display属性 86 3.1.4 突出显示验证错误 86 3.1.5 使用验证组 90 3.1.6 禁用验证 93 3.2 使用RequiredFieldValidator控件 94 3.3 使用RangeValidator控件 97 3.4 使用CompareValidator控件 99 3.5 使用RegularExpressionValidator控件 103 3.6 使用CustomValidator控件 105 3.7 使用ValidationSummary控件 111 3.8 创建自定义验证控件 114 3.8.1 创建LengthValidator控件 115 3.8.2 创建AjaxValidator控件 117 3.9 小结 121 第4章 使用Rich控件 122 4.1 接收上传文件 122 4.1.1 把文件保存到文件系统 123 4.1.2 把文件保存到数据库 125 4.1.3 上传大文件 128 4.2 显示日历 133 4.2.1 创建弹出式日期选择器 135 4.2.2 根据数据库表呈现日历 137 4.3 显示广告 141 4.3.1 在XML文件保存广告 141 4.3.2 在数据库表存储广告 144 4.3.3 跟踪显示和转到 145 4.4 显示不同的页面视图 149 4.4.1 显示选项卡式页面视图 149 4.4.2 显示多部分表单 152 4.5 显示向导 153 4.6 小结 157 第二部分 设计ASP.NET网站 第5章 使用母版页设计网站 160 5.1 创建母版页 160 5.1.1 创建默认内容 163 5.1.2 嵌套母版页 166 5.1.3 在母版页使用图片和超链接 170 5.1.4 在Web配置文件注册母版页 172 5.2 修改母版页内容 172 5.2.1 使用Title属性 173 5.

62,253

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧