📄 standardchoice.ascx.cs
字号:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class uctl_StandardChoice : System.Web.UI.UserControl
{
private int depth = 0;
private int selectedValue;
private bool isFirstNode = true;
private bool showRootNode = false;
private int rootID = 0;
private String rootName = "";
private delegate void needReDrawEventHander();
public void Page_Load(Object sender, EventArgs e)
{
if(!IsPostBack)
ReDraw();
}
public int RootID
{
get { return rootID; }
set { rootID = value; }
}
//是否显示根结点作为一个选项
public bool ShowRootNode
{
get { return showRootNode; }
set { showRootNode = value;}
}
public String RootName
{
get { return rootName; }
set
{ rootName = value.Trim();}
}
public bool Enabled
{
get { return Drop.Enabled; }
set { Drop.Enabled = value; }
}
public int SelectedValue
{
get { return Convert.ToInt32(Drop.Text); }
set { selectedValue = value; ReDraw(); }
}
public void ReDraw()
{
Drop.Items.Clear();
isFirstNode = true;
if (rootName != "" && rootID == 0)
{
string sql = "select ac_Code from J_AllCode where rtrim(ac_Name)='" + rootName + "'";
DataTable dt = DBExec.ExecDataTable(sql);
if (dt.Rows.Count != 0)
rootID = Convert.ToInt32(dt.Rows[0][0]);
}
if (!showRootNode)
{
Drop.Items.Add(new ListItem("-未选定-", "0"));
}
if (rootID > 0) tree(rootID);
}
private string space(int i)
{
string s = "";
for (int j = 0; j < i; j++)
s += " ";
return s;
}
//递归生成树结构
private void tree(int classid)
{
string classname;
char head;
String sql = "select * from J_AllCode where ac_Code=" + classid;
DataTable dt = DBExec.ExecDataTable(sql);
if (dt.Rows[0] != null)
{
classname = dt.Rows[0]["ac_Name"].ToString();
classid = Convert.ToInt32(dt.Rows[0]["ac_Code"]);
sql = "select * from J_AllCode where ac_ParentCode=" + classid;
dt = DBExec.ExecDataTable(sql);
if (!isFirstNode || showRootNode)
{
head = (dt.Rows.Count != 0) ? '+' : '-';
classname = space(depth) + head + classname;
ListItem li = new ListItem(classname, classid.ToString());
li.Selected = (classid == selectedValue);
Drop.Items.Add(li);
depth++;
}
isFirstNode = false;
foreach (DataRow dr in dt.Rows)
{
int tempd = depth;
tree(Convert.ToInt32(dr[0]));
depth = tempd;
}
dt.DataSet.Dispose();
}
else
{
classname = ID.ToString() + "无效";
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -