前台JS函数
function setExpand(sender) {
}后台方法如下
for(int i=0;i<10;i++){
HtmlImage img = new HtmlImage();
img.Src = @"minimize.gif";
img.Attributes.Add("onclick", "setExpand(this)");
img.Style.Add("cursor", "pointer");
}这是后台new的一个图片按钮 个数不确定 id不确定
我如何才能在new完后就调用控件的单击事件
function setExpand(sender) {
}后台方法如下
for(int i=0;i<10;i++){
HtmlImage img = new HtmlImage();
img.Src = @"minimize.gif";
img.Attributes.Add("onclick", "setExpand(this)");
img.Style.Add("cursor", "pointer");
}这是后台new的一个图片按钮 个数不确定 id不确定
我如何才能在new完后就调用控件的单击事件
解决方案 »
- 请教 Extjs4的Ext.data.Operation问题
- 急需~~~一个正则表达式
- 诚聘项目经理java高手!!! (深圳) 急急急!!!!!!!!!
- javascript中的全局变量问题
- 有没有这么一说??
- js 如果提取 url 中参数?
- js:怎么正则判断数组重复--大师请进
- 请问attachEvent的列表
- 对csdn中的搜查的分类时,级联选择的一点看法。请大家也看看是怎么用数组来组织的。
- 页面上有个按钮,用户点一下,就给生成一个text框,再点再生成?请大虾代码示例!谢谢!
- jQuery的treegrid 不显示数据 在线等
- javascript动画的清除队列问题..大家来帮忙看看
JS方法如下 <script type="text/javascript">
//树节点相关控制
//<!--
function hideChildren(node) {
var level = parseInt(node.getAttribute("level"));
var nextNode = node.nextSibling;
while (nextNode != null && parseInt(nextNode.getAttribute("level")) > level) {
nextNode.style.display = "none"; nextNode = nextNode.nextSibling;
}
}
function showChildren(node) {
var level = parseInt(node.getAttribute("level"));
var id = node.getAttribute("id");
var nextNode = node.nextSibling;
while (nextNode != null && parseInt(nextNode.getAttribute("level")) > level) {
if (nextNode.getAttribute("pid") == id) {
if (node.getAttribute("expand") == "1") {
nextNode.style.display = "";
showChildren(nextNode);
}
else {
nextNode.style.display = "none";
}
}
nextNode = nextNode.nextSibling;
}
}
function setExpand(sender) {
var curNode = sender.parentNode.parentNode;
if (curNode.getAttribute("expand") == "1") {
curNode.setAttribute("expand", "0");
sender.src = "maximize.gif";
hideChildren(curNode);
}
else {
curNode.setAttribute("expand", "1");
sender.src = "minimize.gif";
showChildren(curNode);
}
}
//-->
</script>
后台方法如下 protected void gvList_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
# region 生成树形结构
string id = gvList.DataKeys[e.Row.RowIndex]["ID"].ToString();
string pid = gvList.DataKeys[e.Row.RowIndex]["SuperDeptID"].ToString();
string level = gvList.DataKeys[e.Row.RowIndex]["Level"].ToString();
//增加节点的属性
e.Row.Attributes.Add("id", id);
e.Row.Attributes.Add("pid", pid);
e.Row.Attributes.Add("level", level);
e.Row.Attributes.Add("expand", "1");
int indent = (int.Parse(level) - 1) * 20;
//判断是否有子节点
string st = gvList.DataKeys[e.Row.RowIndex]["HasChild"].ToString();
if (st[0] == '1')
{
//设置父节点前面的图片和点击事件
HtmlImage img = new HtmlImage();
img.Src = @"minimize.gif";
img.Attributes.Add("onclick", "setExpand(this)");
img.Style.Add("cursor", "pointer");
img.ID = "img" + e.Row.RowIndex.ToString();
e.Row.Cells[0].Controls.Add(img);
e.Row.Cells[0].Style["font-weight"] = "bold";
img.Attributes[1];
//Response.Write(string.Format("<script type=\"text/javascript\">setExpand({0});</script>",img));
}
else
{
indent += 16;
}
e.Row.Cells[0].Style["padding-left"] = indent + "px";
e.Row.Cells[0].Controls.Add(new LiteralControl(e.Row.Cells[0].Text));
# endregion
e.Row.Attributes["onmouseover"] = "style.backgroundColor='#F2FDDB'";
e.Row.Attributes["onmouseout"] = "style.backgroundColor=''";
}
}
这样做的话呈现的控件就是打开的 我现在需要一开始树形结构就是收缩的 这样便于观看
http://www.cnblogs.com/lindaWei/archive/2012/04/05/2433385.html