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= ...
随机推荐
- Oracle数据库表索引失效,解决办法:修改Oracle数据库优化器模式
ALTER SYSTEM SET OPTIMIZER_MODE=RULE scope=both; 其他可以选择的模式还有ALL_ROWS/CHOOSE/FIRST_ROWS/ALL_ROWS. 应用系 ...
- Eclipse中如何打开Map/Reduce Locations窗口
Window->Show View->Other->MapReduce Tools,双击打开
- C#学习-构造函数
如果没有为类显式地定义一个构造函数,则C#编译器会自动生成一个函数体为空的默认无参的实例构造函数. 构造函数主要用于创建类的实例对象. 当调用构造函数创建一个对象时,构造函数会为对象分配内存空间,并初 ...
- Multidex(二)之Dex预加载优化
Multidex(二)之Dex预加载优化 https://www.jianshu.com/p/2891599511ff
- Python_collections_namedtuple可命名元组
namedtuple:用来构建带字段名的元组 import collections # 创建类,两种创建方法 MytupleClass = collections.namedtuple('Mytupl ...
- Codeforces 965E Short Code 启发式合并 (看题解)
Short Code 我的想法是建出字典树, 然后让后面节点最多的点优先向上移到不能移为止, 然后gg. 正确做法是对于当前的节点如果没有被占, 那么从它的子树中选出一个深度最大的点换到当前位置. 用 ...
- BZOJ2219 数论之神 数论 中国剩余定理 原根 BSGS
原文链接https://www.cnblogs.com/zhouzhendong/p/BZOJ2219.html 题目传送门 - BZOJ2219 题意 求同余方程 $x^A\equiv B \pmo ...
- css 其他
去掉border和padding占用设置元素额外的宽高,使浏览器显示的元素宽高+border+padding的总和与设置的一致,它在浏览器的总宽=40px-border-padding (默认时: 设 ...
- Django分页(一)
Django分页(一) 手动实现简单分页 HTML <!DOCTYPE html> <html lang="en"> <head> <me ...
- metasploit支持利用的CVE
因为需要添加许多漏洞的流量检测,所以需要模拟很多漏洞的利用过程,简单来说,就是抓漏洞利用过程的流量. 一个脚本对metasploit中的module中包含的cve字段进行提取,而后去重,得出metas ...