QCombox 下拉列表怎么做能实现 Tree 状结构吗

tree_select - 树形结构联动下拉框插件 - 日积月累 - ITeye技术网站
博客分类:
树形结构经常遇到,比如"省-市-区"之类的.而在做页面时有时需要以联运下拉框的方式来显示.自己动手做还是挺麻烦的.Google了一下,居然没找到一个可用的工具.于是自己写了一个插件, 就叫tree_select. 放在
目前主要功能有:
1 可自定义结构
2 可即时添加元素
3 表单辅助方法
tree_select 依赖 acts_as_tree 插件.
ruby script/plugin install git:///wanglian/tree_select.git
1 定义结构
ruby ruby script/generate tree_select region Country State City
2 run migration
rake db:migrate
3 修改 routes.rb, 添加一行:
map.resources :regions
4 view中使用,确保包含了相关的JS文件
&%= javascript_include_tag :defaults %&
然后可在表单中这么用:
&% form_for @user do |f| %&
&%= region_select "user[region_id]" %&
表单辅助方法有两个选项:
readonly - 是否允许即时添加元素
complete_must - 是否必须选择所有的下拉框.
示例有一个在
浏览: 52477 次
来自: 北京
mvnDebug tomcat:run 这样不就调试了。不需要 ...
請問如果我只是想連接到主機
然後只做讀取資料
有什麼方法 ...
什么样的效果呢?是不是只有一个下拉框?树状显示呢?你的示例好像 ...
不错 正好可以用 谢谢哦
请问有没有尝试过配置JNDI呢?我在tomcat中配置好的JN ...tree 实现多层树结构的展示,支持无限层次。操控简单。 android 238万源代码下载-
&文件名称: tree
& & & & &&]
&&所属分类:
&&开发工具: Java
&&文件大小: 78 KB
&&上传时间:
&&下载次数: 41
&&提 供 者:
&详细说明:实现多层树结构的展示,支持无限层次。操控简单。-Achieve multi-tree structure display, supports unlimited levels. Simple manipulation.
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&多层树完美实现\.classpath&&..............\.project&&..............\AndroidManifest.xml&&..............\default.properties&&..............\src\com\gao\tree\TreeElement.java&&..............\...\...\...\....\TreeView.java&&..............\...\...\...\....\TestView.java&&..............\res\values\strings.xml&&..............\...\layout\outline.xml&&..............\...\......\testview1.xml&&..............\...\drawable-mdpi\icon.png&&..............\...\.............\outline_list_collapse.png&&..............\...\.............\outline_list_expand.png&&..............\...\.........ldpi\icon.png&&..............\...\.........hdpi\icon.png&&..............\...\.............\outline_list_collapse.png&&..............\...\.............\outline_list_expand.png&&..............\gen\com\gao\tree\R.java&&..............\bin\com\gao\tree\TreeView.class&&..............\...\...\...\....\TreeElement.class&&..............\...\...\...\....\R$string.class&&..............\...\...\...\....\R$drawable.class&&..............\...\...\...\....\R.class&&..............\...\...\...\....\R$attr.class&&..............\...\...\...\....\R$layout.class&&..............\...\...\...\....\R$id.class&&..............\...\...\...\....\TestView.class&&..............\...\...\...\....\TestView$TreeViewAdapter.class&&..............\...\...\...\....\TestView$TreeViewAdapter$ViewHolder.class&&..............\...\...\...\....\TestView$1.class&&..............\...\...\...\....\TestView$TreeViewAdapter$1.class&&..............\...\...\...\....\TreeView$TreeViewAdapter$1.class&&..............\...\...\...\....\TreeView$TreeViewAdapter$ViewHolder.class&&..............\...\...\...\....\TreeView$TreeViewAdapter.class&&..............\...\classes.dex&&..............\...\resources.ap_&&..............\...\多层树完美实现.apk&&..............\.settings\org.eclipse.core.resources.prefs&&..............\src\com\gao\tree&&..............\gen\com\gao\tree&&..............\bin\com\gao\tree&&..............\src\com\gao&&..............\gen\com\gao&&..............\bin\com\gao&&..............\src\com&&..............\res\values&&..............\...\layout&&..............\...\drawable-mdpi&&..............\...\drawable-ldpi&&..............\...\drawable-hdpi&&..............\gen\com&&..............\bin\com&&..............\src&&..............\res&&..............\gen&&..............\bin&&..............\.settings&&多层树完美实现
&相关搜索:
&输入关键字,在本站238万海量源码库中尽情搜索:
&[] - 从sdk中整理出来的3d切换界面效果,利用了Animation
&[] - android基本控件使用方法。例如button,listview,menu,textview,spinner等。
&[] - android开发的视频通话程序,在Android1.6系统上开发,能实现远程手机视频通话,不知道你信不信,反正我信了!
&[] - android聊天室,采用Socket网络编程方式
&[] - android 经典demo listview分页实现,
&[] - android基本控件使用方法。例如button,listview,menu,textview,spinner等。
&[] - android MAPABC 4.2 InvokeJar源代码。
&[] - 利用ListView实现的具有树形结构的List
&[] - android下的多重树形结构的实现。可以编译,运行。求教:高效的将数组结构(csv)的json转换成树状结构(tree)的办法?
[问题点数:40分,结帖人bigbro001]
求教:高效的将数组结构(csv)的json转换成树状结构(tree)的办法?
[问题点数:40分,结帖人bigbro001]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
本帖子已过去太久远了,不再提供回复功能。旧文转移(2012年)(33)
#include &iostream&
template&class Comparable&
class AvlTree
AvlTree();
AvlTree(const AvlTree& rhs);
~AvlTree();
const Comparable& findMin()
//find the minimum value
const Comparable& findMax()
//find the maximum value
bool contains(const Comparable& x) //Determine whether the tree contains x
bool isEmpty()
//Determine whether the tree is empty
void printTree()
//print the binary Tree
int size()
//return the tree's size
void makeEmpty();
//make Avl tree empty
void insert(const Comparable& x); //insert a value into Avl tree
void remove(const Comparable& x); //remove a value from Avl tree
const AvlTree& operator= (const AvlTree& rhs); //overload operator =
struct AvlNode
AvlNode() {}
AvlNode(const Comparable& theElem, AvlNode* lt, AvlNode* rt, AvlNode* pt, int ht = 0) : element(theElem), left(lt),
right(rt), parent(pt), height(ht){}
AvlNode* //define the root node
void insert(const Comparable& x, AvlNode *&t, AvlNode *parent = NULL)
void remove(const Comparable& x, AvlNode *&t);
AvlNode* findMin(AvlNode* t)
AvlNode* findMax(AvlNode* t)
bool contains(const Comparable& x, AvlNode* t)
void printTree(AvlNode* t)
void makeEmpty(AvlNode *&t)
AvlNode* clone(AvlNode *t)
int height(AvlNode *t)
void rotateWithLeftChild(AvlNode *&k2); //LL单旋转
void doubleWithLeftChild(AvlNode *&k3); //LR双旋转
void rotateWithRightChild(AvlNode *&k2); //RR单旋转
void doubleWithRightChild(AvlNode *&k3); //RL单旋转
template&class Comparable&
AvlTree&Comparable&::AvlTree() : length(0)
root = new AvlNode(); //constructor construct a tree without subtree
root = NULL;
template&class Comparable&
AvlTree&Comparable&::AvlTree(const AvlTree& rhs)
root = new AvlNode();
root = NULL;
makeEmpty();
root = clone(rhs.root);
length = rhs.
template&class Comparable&
AvlTree&Comparable&::~AvlTree()
makeEmpty();
template&class Comparable&
const Comparable& AvlTree&Comparable&::findMin() const
return findMin(root)-&
template&class Comparable&
const Comparable& AvlTree&Comparable&::findMax() const
return findMax(root)-&
template&class Comparable&
int AvlTree&Comparable&::size() const
template&class Comparable&
bool AvlTree&Comparable&::contains(const Comparable& x) const
return contains(x, root);
template&class Comparable&
bool AvlTree&Comparable&::isEmpty() const
return root == NULL;
template&class Comparable&
void AvlTree&Comparable&::printTree() const
printTree(root);
template&class Comparable&
void AvlTree&Comparable&::makeEmpty()
makeEmpty(root);
length = 0;
template&class Comparable&
void AvlTree&Comparable&::insert(const Comparable& x)
insert(x, root);
template&class Comparable&
void AvlTree&Comparable&::remove(const Comparable& x)
remove(x, root);
template&class Comparable&
const AvlTree&Comparable&& AvlTree&Comparable&::operator= (const AvlTree& rhs)
if(this != &rhs)
makeEmpty();
root = clone(rhs.root);
length = rhs.
template&class Comparable&
void AvlTree&Comparable&::insert(const Comparable& x, AvlNode *&t, AvlNode *parent = NULL) const
if(t == NULL)
t = new AvlNode(x, NULL, NULL, parent);
else if(x & t -& element)
insert(x, t -& left, t);
if(height(t -& left) - height(t -& right) == 2)
if(x & t -& left -& element)
rotateWithLeftChild(t);
doubleWithLeftChild(t);
else if(t -& element & x)
insert(x, t -& right, t);
if(height(t -& right) - height(t -& left) == 2)
if(x & t -& right -& element)
doubleWithRightChild(t);
rotateWithRightChild(t);
//do nothing
t -& height = max(height(t -& left), height(t -& right)) + 1;
template&class Comparable&
void AvlTree&Comparable&::remove(const Comparable& x, AvlNode *&t)
if (t == NULL)
if(x & t -& element)
remove(x, t -& left);
if(t != NULL)
t -& height = max(height(t -& left), height(t -& right)) + 1;
if(height(t -& right) - height(t -& left) == 2)
if(t -& right -& right -& height & t -& right -& left -& height)
rotateWithRightChild(t);
doubleWithRightChild(t);
else if(t -& element & x)
remove(x, t -& right);
if(t != NULL)
t -& height = max(height(t -& right), height(t -& left)) + 1;
if(height(t -& left) - height(t -& right) == 2)
if(t -& left -& left -& height & t -& left -& right -& height)
rotateWithLeftChild(t);
doubleWithLeftChild(t);
else if(t -& left != NULL && t -& right != NULL)
t -& element = findMin(t -& right) -&
remove(t-&element, t-&right);
AvlNode *oldNode =
AvlNode *oldParent = t -&
t = (t -& left != NULL) ? t -& left : t -&
if(t != NULL)
t -& parent = oldP
delete oldN
template&class Comparable&
typename AvlTree&Comparable&::AvlNode* AvlTree&Comparable&::findMin(AvlNode *t) const
if(t == NULL)
return NULL;
if(t -& left == NULL)
return findMin(t -& left);
template&class Comparable&
typename AvlTree&Comparable&::AvlNode* AvlTree&Comparable&::findMax(AvlNode *t) const
if(t == NULL)
return NULL;
if(t -& right == NULL)
return findMax(t -& right);
template&class Comparable&
bool AvlTree&Comparable&::contains(const Comparable& x, AvlNode* t) const
if(t == NULL)
else if(x & t -& element)
return contains(x, t -& left);
else if(t -& element & x)
return contains(x, t -& right);
template&class Comparable&
void AvlTree&Comparable&::makeEmpty(AvlNode*& t) const
if(t != NULL)
makeEmpty(t -& left);
makeEmpty(t -& right);
template&class Comparable&
void AvlTree&Comparable&::printTree(AvlNode* t) const
if(t != NULL)
cout && t -&element && &\t&;
printTree(t -& left);
printTree(t -& right);
template&class Comparable&
typename AvlTree&Comparable&::AvlNode* AvlTree&Comparable&::clone(AvlNode *t) const
if(t == NULL)
return NULL;
return new AvlNode(t -& element, clone(t -& left), clone(t -& right), t -& parent);
template&class Comparable&
int AvlTree&Comparable&::height(AvlNode* t) const
return (t == NULL) ? -1 : t -&
template&class Comparable&
void AvlTree&Comparable&::rotateWithLeftChild(AvlNode *&k2)
AvlNode* k1 = k2 -&
k2 -& left = k1 -&
k1 -& right = k2;
k1 -& parent = k2 -&
k2 -& parent = k1;
k2 -& height = max(height(k2 -& left), height(k2 -& right)) + 1;
k1 -& height = max(height(k1 -& left), k2 -& height) + 1;
template&class Comparable&
void AvlTree&Comparable&::doubleWithLeftChild(AvlNode *&k3)
rotateWithRightChild(k3 -& left);
rotateWithLeftChild(k3);
template&class Comparable&
void AvlTree&Comparable&::rotateWithRightChild(AvlNode *&k2)
AvlNode* k1 = k2 -&
k2 -& right = k1 -&
k1 -& left = k2;
k1 -& parent = k2 -&
k2 -& parent = k1;
k2 -& height = max(height(k2 -& left), height(k2 -& right)) + 1;
k1 -& height = max(height(k1 -& right), k2 -& height) + 1;
template&class Comparable&
void AvlTree&Comparable&::doubleWithRightChild(AvlNode *&k3)
rotateWithLeftChild(k3 -& right);
rotateWithRightChild(k3);
int main()
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:11403次
排名:千里之外
原创:52篇
(1)(1)(5)(11)(1)(36)

我要回帖

更多关于 excel 下拉列表 的文章

 

随机推荐