c# 后台绑定treeview 单个tab
<wijmo:C1TreeView ID="C1TreeView1" runat="server" ShowCheckBoxes="true" ShowExpandCollapse="true" Width="300px"></wijmo:C1TreeView>
<asp:Button ID="ButtonToTable" runat="server" Text="转表格" OnClick="ButtonToTable_Click" Width="58px" />
后台
DataTable dtOil = GJPDbHelper.DAL.ExecuteDataSet("SELECT [品牌],[类型] FROM [AIRB_MMTREE] where [treeType] = '1' group by [品牌],[类型]").Tables[0];
BindTreeOil(dtOil);
#region "Optional Interfaces" /// -----------------------------------------------------------------------------
/// <summary>
/// Registers the module actions required for interfacing with the portal framework
/// </summary>
/// <value></value>
/// <returns></returns>
/// <remarks></remarks>
/// <history>
/// </history>
/// -----------------------------------------------------------------------------
public ModuleActionCollection ModuleActions
{
get
{
ModuleActionCollection Actions = new ModuleActionCollection();
Actions.Add(GetNextActionID(), Localization.GetString(ModuleActionType.AddContent, this.LocalResourceFile),
ModuleActionType.AddContent, "", "add.gif", EditUrl(), false, DotNetNuke.Security.SecurityAccessLevel.Edit,
true, false);
return Actions;
}
} #endregion /// <summary>
/// 将数据绑定到C1TreeView1
/// </summary>
/// <param name="dtSource">传入两列数据</param>
private void BindTreeOil(DataTable dtSource)
{ C1TreeView1.Nodes.Clear(); string topNodeStr = ""; C1TreeViewNode curNode = new C1TreeViewNode(); ; //DataRow[] rows = dtSource.Select(string.Format("ParentID={0}", parentID));
foreach (System.Data.DataRow c1row in dtSource.Rows)
{
if (topNodeStr != Convert.ToString(c1row[0]))
{
C1TreeViewNode newNode = new C1TreeViewNode();
newNode.Value = Convert.ToString(c1row[0]);
newNode.Text = Convert.ToString(c1row[0]); C1TreeView1.Nodes.Add(newNode);
topNodeStr = Convert.ToString(c1row[0]);
curNode = newNode; C1TreeViewNode newsubNode = new C1TreeViewNode();
newsubNode.Value = Convert.ToString(c1row[1]);
newsubNode.Text = Convert.ToString(c1row[1]); curNode.Nodes.Add(newsubNode);
}
else
{
C1TreeViewNode newNode = new C1TreeViewNode();
newNode.Value = Convert.ToString(c1row[1]);
newNode.Text = Convert.ToString(c1row[1]); curNode.Nodes.Add(newNode); }
}
} /// <summary>
/// 建立所选项目的目录框架
/// </summary>
/// <param name="ctrv"></param>
/// <returns></returns>
protected DataTable checkItemTableOil(C1TreeView ctrv)
{
InsusJsUtility js = new InsusJsUtility();
Boolean itemCountFlag = false;
string parentText = "";
int boolCount = 0;
DataTable infoTable = new DataTable();
infoTable = GJPDbHelper.DAL.ExecuteDataSet("SELECT '' as pinpai,'' as leixing FROM [AIRB_MMTREE] where [treeType] = '999' ").Tables[0]; foreach (C1TreeViewNode csnode in ctrv.Nodes)
{
//csnode.CheckState = C1TreeViewNodeCheckState.Indeterminate;
if (csnode.CheckState == C1TreeViewNodeCheckState.Checked)
{
if (boolCount > 3)
{
js.JsAlert("选择油品已大于4个");
break;
}
additemInfoRow(infoTable, csnode.Text, "");
boolCount++;
}
else if (csnode.CheckState == C1TreeViewNodeCheckState.Indeterminate)
{
foreach (C1TreeViewNode subcsnode in csnode.Nodes)
{
if (subcsnode.CheckState == C1TreeViewNodeCheckState.Checked)
{
if (boolCount > 3)
{
js.JsAlert("选择油品已大于4个");
break;
}
additemInfoRow(infoTable, csnode.Text, subcsnode.Text);
boolCount++;
}
}
}
}
return infoTable;
} /// <summary>
///
/// 快速设置新的结构行
/// </summary>
/// <param name="dt"></param>
/// <param name="level1"></param>
/// <param name="level2"></param>
protected void additemInfoRow(DataTable dt, string level1, string level2)
{
System.Data.DataRow row;
row = dt.NewRow();
// Then add the new row to the collection.
row[0] = level1;
row[1] = level2;
dt.Rows.Add(row);
}
//树状图中被选项显示到C1GridView1中
protected void ButtonToTable_Click(object sender, EventArgs e)
{
// 返回目录
DataTable dt = new DataTable();
InsusJsUtility js = new InsusJsUtility();
dt = checkItemTableOil(C1TreeView1);
int dtCount = dt.Rows.Count; if (dtCount == 0)
{
js.JsAlert("未选择油品!");
}
else
{
C1GridView1.DataSource = dt;
C1GridView1.DataBind(); ButtonToDsr.Visible = true;
} }
c# 后台绑定treeview 单个tab的更多相关文章
- c# 后台绑定treeview 多个tab
<wijmo:C1Tabs ID="C1Tab1" runat="server" ><%--OnSelectedChanged="& ...
- TreeView控件之,后台构建TreeView(WinForm小程序)
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAX0AAAIdCAIAAABeBzrBAAAgAElEQVR4nOzdd5Qc130n+tl/nr3e5+
- GridView后台绑定数据列表方法
在很多时候数据绑定都是知道了数据表中的表字段来绑定GridView控件的,那时候我就有个想法希望通过表明来查询数据库中的字段来动态的绑定GirdView控件数据并提供了相关的操作列,在网上找了一些资料 ...
- MVC 传递数据 从前台到后台,包括单个对象,多个对象,集合
MVC 传递数据 从前台到后台,包括单个对象,多个对象,集合 1.基本数据类型 我们常见有传递 int, string, bool, double, decimal 等类型. 需要注意的是前台传递的参 ...
- WPF DATAGrid 空白列 后台绑定列 处理
原文:WPF DATAGrid 空白列 后台绑定列 处理 AutoGenerateColumns <DataGrid x:Name="dataGrid" Margin=&qu ...
- HighChat动态绑定数据 数据后台绑定(四)
后台绑定数据,直接返回json数据 IList<SummaryHour> adHourData = summarybll.FindList(str); List<, , , , , ...
- HighChat动态绑定数据 数据后台绑定(三)
今天看了几位大佬的博客,学到了一些,现在分享一下,也作为以后的参考 不多说看代码 1.后台代码 public ActionResult Ajax2() { ReportData reportData ...
- Asp.net MVC 传递数据 从前台到后台,包括单个对象,多个对象,集合
今天为大家分享下 Asp.net MVC 将数据从前台传递到后台的几种方式. 环境:VS2013,MVC5.0框架 1.基本数据类型 我们常见有传递 int, string, bool, double ...
- 《转》---使用递归方法DataTable 绑定 TreeView
转自:http://blog.sina.com.cn/s/blog_8944756d01016yaj.html 前台: <asp:View ID="view0" runat= ...
随机推荐
- 源码编译安装net-snmp
https://blog.csdn.net/u013992330/article/details/79712405 https://wenku.baidu.com/view/24368a2257125 ...
- Linux系统监控命令及定位Java线程
1.PID.TID的区分 uid是user id,即用户id,root用户的uid是0,0为最高权限,gid是group id,用户组id,使用 id 命令可以很简单的通过用户名查看UID.GID:~ ...
- Log4Net帮助类
工具类 using System; using System.Diagnostics; using log4net; namespace Trumgu_BI_PF.Util { public clas ...
- Windows无法自动将IP协议堆栈绑定到网络适配器 的解决办法
实验室的台式机在升级驱动后上不了网了,有线网卡驱动卸载后重装了,还是不行,通过Windows诊断发现“Windows 无法自动将 IP 协议堆栈绑定到网络适配器的解决办法”. 解决办法: 打开“控制面 ...
- mysql中cast() 和convert()的用法讲解
一.在mysql操作中我们经常需要对数据进行类型转换.此时我们应该使用的是cast()或convert(). 二.两者的对比 相同点:都是进行数据类型转换,实现的功能基本等同 不同点:两者的语法不同, ...
- vue中methods一个方法调用另外一个方法
转自http://blog.csdn.net/zhangjing1019/article/details/77942923 vue在同一个组件内: methods中的一个方法调用methods中的另外 ...
- [转]git 删除远程仓库文件
来源:https://www.jianshu.com/p/de75a9e3d1e1 git删除远程文件夹或文件的方法 项目开发初期由于.gitignore 文件配置不正确很有可能导致某些不需要的目录上 ...
- js,JQ获取短信验证码倒计时
按钮 <a href="javasript:void(0);"onclick="settime(this);">获取手机验证码</a> ...
- js去掉前后空格
//去前后空格 data=data.replace(/(^\s*)|(\s*$)/g, "");
- 数位dp 模板
不能有49 #include<bits/stdc++.h> using namespace std; //input by bxd #define rep(i,a,b) for(int i ...