﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-玄铁剑-文章分类-Javascript</title><link>http://www.cnitblog.com/MartinYao/category/5157.html</link><description>成功的途径：抄，创造，研究，发明...</description><language>zh-cn</language><lastBuildDate>Mon, 26 Sep 2011 12:56:46 GMT</lastBuildDate><pubDate>Mon, 26 Sep 2011 12:56:46 GMT</pubDate><ttl>60</ttl><item><title>TreeGrid實現方法</title><link>http://www.cnitblog.com/MartinYao/articles/39987.html</link><dc:creator>玄铁剑</dc:creator><author>玄铁剑</author><pubDate>Wed, 20 Feb 2008 09:16:00 GMT</pubDate><guid>http://www.cnitblog.com/MartinYao/articles/39987.html</guid><wfw:comment>http://www.cnitblog.com/MartinYao/comments/39987.html</wfw:comment><comments>http://www.cnitblog.com/MartinYao/articles/39987.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/MartinYao/comments/commentRss/39987.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/MartinYao/services/trackbacks/39987.html</trackback:ping><description><![CDATA[方法1：<br>
<ul class=download>
    <li><a href="http://www.codeproject.com/KB/scripting/treelistcontrolv3/treelistcontrol.v3.zip"><u><font color=#810081>Download source files - 8 Kb</font></u></a> </li>
</ul>
<p><img height=293 alt="Sample Image - treelistcontrol.v3.gif" src="http://www.codeproject.com/KB/scripting/treelistcontrolv3/treelistcontrol.v3.gif" width=589></p>
<h2>Introduction</h2>
<p>This is my third attempt at making a TreeListControl for Internet Explorer-based web applications. The first was very slow and required ASP to generate a tree. The second has lots of features, and even resizable columns, but, while it did not suffer from the freeze-up delays that occurred in the first one, was generally sluggish in operation if there were more than a few nodes on the screen. This latest version has tighter code and is generally more versatile all round. It doesn't have resizable columns, but it shouldn't be too hard to put them in. If I do that, I'll upload the updated version here. The only other major limitation of this control is that it is fixed-width. That is, you have to specify the exact width of each column, and this determines the control width.</p>
<p>Features that version 3.0 has are:</p>
<ul>
    <li>Enable/disable column headings
    <li>Enable/disable root node
    <li>The ability to choose which column the tree appears in
    <li>Dynamic loading of branches via XML files
    <li>Completely dynamic updating of the tree structure after it has been generated, including:
    <ul>
        <li>remove nodes
        <li>add new nodes
        <li>remove nodes and re-add them somewhere else
        <li>insert before or after a specified node
        <li>expand/collapse branches </li>
    </ul>
    <li>optional row onclick action
    <li>row highlights while being pointed at
    <li>prevent specified columns from firing the row onclick event (e.g. for a column of checkboxes) </li>
</ul>
<p>To use the control, simply include <em>treelistcontrol.js</em> and <em>treelistcontrol.css</em> in your html file, then, inside the element (body tag, div tag, or where ever) you want to render the tree inside, place a script tag and build the tree according to the API. A demo of how to do this is inside the included zip file.</p>
<h2>Usage</h2>
<p>See the API below for explanations of the tree's objects, and the file <em>demo.htm</em> for an example of how to use the tree.</p>
<ol>
    <li>Create a tree control
    <li>Create and add the columns to the tree
    <li>Add all the initial nodes to the tree
    <li>document.write the tree object to the page </li>
</ol>
<h2>Tree List Control v3.0 API</h2>
<h3>TreeListControl</h3>
<p><code>TreeListControl(strRootNodeLabel, strRootNodeIconSrc, boolHideColumnHeadings, boolHideRootNode)</code></p>
<ul>
    <li><code>strRootNodeLabel</code>: the label to use for the root node
    <li><code>strRootNodeIconSrc</code>: the path to the node's icon
    <li><code>boolHideColumnHeadings</code>: don't show the column headings
    <li><code>boolHideRootNode</code>: don't show the root node </li>
</ul>
<h4>Properties</h4>
<ul>
    <li><code>showColumnHeadings</code>: hide/show the column headings. The visibility of the column headings will automatically change depending on the state of this property.
    <li><code>showRootNode</code>: hide/show the root node. The visibility of the root node will automatically change depending on the state of this property.
    <li><code>all</code>: this is a collection (array) contain references to all the nodes that were assigned a non-null refKey when added to the tree. usage: <em>mytree.all['mynoderefKey']</em>
    <li><code>allNodes</code>: this is a collection containing references to every node in the tree, indexed by the node's automatically assigned ID property.
    <li><code>rootNode</code>: a reference to the tree's root node. This is of type TreeListControlNode.
    <li><code>iconPath</code>: the path to the location where the tree's images are stored. The default is 'tlcimages/'. </li>
</ul>
<h4>Methods</h4>
<ul>
    <li><strong>addColumn</strong>( oColumnObject ): adds a column to the tree. Do not use this once the tree has been rendered to the page. Pass in a reference to a TreeListControlColumn object that defines the column's parameters.
    <li><strong>add</strong>( oNodeObject ): appends a node to the children of the root node. Pass in a reference to a previously created node. </li>
</ul>
<h3>TreeListControlColumn </h3>
<p><code>TreeListControlColumn (intWidth, strTitle, boolPreventRowClickEvents)</code></p>
<ul>
    <li><code>intWidth</code>: the width, in pixels, of the column.
    <li><code>strTitle</code>: the heading/title of the column. Use a zero-length string if no title is desired.
    <li><code>boolPreventRowClickEvents</code>: when a row is clicked, it fires the onclick event for that row. Setting this parameter to true will prevent clicks in this row from firing that event. </li>
</ul>
<h3>TreeListControlNode </h3>
<p><code>TreeListControlNode (boolShowChildren, strIconSrc, strXMLSrc, strReferenceKey)</code></p>
<ul>
    <li><code>boolShowChildren</code>: this specifies the initial expand/collapse state for the node.
    <li><code>strIconSrc</code>: the path to the icon image to use.
    <li><code>strXMLSrc</code>: if the children of this node are to be loaded at run-time when the node is expanded, this parameter should contain the URL of the XML file. Set to null or '' if not used.
    <li><code>strReferenceKey</code>: if you want to use your own identifiers for each node, instead of the automatically-assigned ID that each node has, specify the identifier here. It can be an integer or a string, and, once the node has been added to the tree, you can access the node via the <strong>all</strong> property of the TreeListControl object. </li>
</ul>
<h4>Properties</h4>
<ul>
    <li><code>onclick</code>: the javascript to execute when the onclick event fires for that node. Only set this before the node has been added to the tree. </li>
</ul>
<h4>Methods</h4>
<ul>
    <li><code>expand</code>: shows the node's children.
    <li><code>collapse</code>: hides the node's children.
    <li><code>setText( strColumn1, strColumn2, ..., strColumnN )</code>: sets the node's text in each column.
    <li><code>setColumnText( intColumn, strText )</code>: sets the text for the node in the specified column.
    <li><code>add( oNodeObject )</code>: appends a node object to this node's children. DO NOT use this method if this node has not yet been added to the tree.
    <li><code>insertBefore( oNodeObject )</code>: inserts the supplied node immediately before this node.
    <li><code>insertAfter( oNodeObject )</code>: inserts the supplied node directly after this node.
    <li><code>remove()</code>: removes this node from the tree completely and returns a reference to the node so that it can be reinserted elsewhere if desired. </li>
</ul>
<!-- Article Ends --><!-- Main Page Contents End -->
<h2>License</h2>
<p>This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.</p>
<p>A list of licenses authors might use can be found <a href="http://www.codeproject.com/info/Licenses.aspx"><u><font color=#0000ff>here</font></u></a></p>
<br>方法2：<br>
<ul class=download>
    <li><a href="http://www.codeproject.com/KB/scripting/wsGridCtrl/wsGridCtrl_src.zip">Download source files - 4.08 Kb</a> </li>
</ul>
<p><img height=163 alt="Sample Image - wsGridCtrl.gif" src="http://www.codeproject.com/KB/scripting/wsGridCtrl/wsGridCtrl.gif" width=508></p>
<h2>Introduction</h2>
<p>This article demonstrates a Tree Grid control for JScript.</p>
<h2>How to use</h2>
<pre lang=jscript><span class=code-comment>//</span><span class=code-comment> Create wsGrid Instance
</span> m_wsGridCtrl = <span class=code-keyword>new</span> wsGridCtrl();
<span class=code-comment>//</span><span class=code-comment> Initialize
</span> <span class=code-comment>//</span><span class=code-comment> Param1: width
</span> <span class=code-comment>//</span><span class=code-comment> Param2: OnMouseOver Color
</span> m_wsGridCtrl.initializeDocument(<span class=code-digit>500</span>, <span class=code-string>"</span><span class=code-string>#FF9999"</span>);
<span class=code-comment>//</span><span class=code-comment> Titles Create
</span> <span class=code-comment>//</span><span class=code-comment> Param1: Text
</span> <span class=code-comment>//</span><span class=code-comment> Param2: Width
</span> m_wsGridCtrl.InsTab(<span class=code-string>"</span><span class=code-string>Title"</span>, <span class=code-string>"</span><span class=code-string>*"</span>);
m_wsGridCtrl.InsTab(<span class=code-string>"</span><span class=code-string>Content"</span>, <span class=code-string>"</span><span class=code-string>400"</span>);
<span class=code-comment>//</span><span class=code-comment> Insert Item Example
</span> <span class=code-comment>//</span><span class=code-comment> Param1: Parent Item
</span> <span class=code-comment>//</span><span class=code-comment> Param2: Item. If title is two..
</span><span class=code-comment>//</span><span class=code-comment>          you must write two Items. (delimiter is ';')
</span> <span class=code-comment>//</span><span class=code-comment> Param3: hyper link (it also delimiter is ';')
</span> m_wsGridCtrl.InsItem(<span class=code-keyword>null</span>, <span class=code-string>"</span><span class=code-string>Menu1;Content1;"</span>,
<span class=code-string>"</span><span class=code-string>http://yahoo.com;http://google.com;"</span>, <span class=code-string>"</span><span class=code-string>_self;_blank;"</span>);
m_wsGridCtrl.InsItem(<span class=code-keyword>null</span>, <span class=code-string>"</span><span class=code-string>Menu2;Content2;"</span>,
<span class=code-string>"</span><span class=code-string>http://yahoo.com;http://google.com;"</span>, <span class=code-string>"</span><span class=code-string>_blank;_blank;"</span>);
<span class=code-comment>//</span><span class=code-comment> Sub Item Example
</span> <span class=code-keyword>var</span> iItem = m_wsGridCtrl.InsItem(<span class=code-keyword>null</span>, <span class=code-string>"</span><span class=code-string>Menu3;Content3;"</span>,
<span class=code-string>"</span><span class=code-string>http://yahoo.com;http://google.com;"</span>, <span class=code-string>"</span><span class=code-string>_blank;_blank;"</span>);
m_wsGridCtrl.InsItem(iItem, <span class=code-string>"</span><span class=code-string>Menu5;Content5;"</span>,
<span class=code-string>"</span><span class=code-string>http://yahoo.com;http://google.com;"</span>, <span class=code-string>"</span><span class=code-string>_blank;_blank;"</span>);
m_wsGridCtrl.InsItem(<span class=code-keyword>null</span>, <span class=code-string>"</span><span class=code-string>Menu6;Content6;"</span>,
<span class=code-string>"</span><span class=code-string>http://yahoo.com;http://google.com;"</span>, <span class=code-string>"</span><span class=code-string>_blank;_blank;"</span>);
m_wsGridCtrl.InsItem(<span class=code-keyword>null</span>, <span class=code-string>"</span><span class=code-string>Menu7;Content7;"</span>,
<span class=code-string>"</span><span class=code-string>http://yahoo.com;http://google.com;"</span>, <span class=code-string>"</span><span class=code-string>_blank;_blank;"</span>);
<span class=code-comment>//</span><span class=code-comment> finilly generate code (It is important!)
</span> m_wsGridCtrl.GenerateCode();
<span class=code-comment>//</span><span class=code-comment> First state setting (ExpandAllTree or RecudeAllTree)
</span> m_wsGridCtrl.RecudeAllTree();
<span class=code-comment>//</span><span class=code-comment> m_wsGridCtrl.ExpandAllTree();</span></pre>
<!-- Article Ends --><!-- Main Page Contents End -->
<h2>License</h2>
<p>This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.</p>
<p>A list of licenses authors might use can be found <a href="http://www.codeproject.com/info/Licenses.aspx">here</a></p>
<p>方法3,方法比較笨拙,但也能夠實現大多數的TreeGrid,部分代碼思路如下:<br>&nbsp;&nbsp;&nbsp; string FstColor = "#ECF0F7";<br>&nbsp;&nbsp;&nbsp; string SecColor = "#FFFFFF";</p>
<p>&nbsp;//tbModuleList is Table<br>&nbsp;&nbsp;&nbsp; protected void DrawTreeGrid()<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tbModuleList.Rows.Clear();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TreeView MyTreeView = new TreeView();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BuildTree(MyTreeView);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BuildGridData(MyTreeView);<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;<br>&nbsp;&nbsp;&nbsp; protected void BuildTree(TreeView MainTree)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MainTree.Nodes.Clear();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TreeNode newItem;<br>&nbsp;&nbsp;//.....<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //BuildSubTree(ref newItem, ...);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MainTree.Nodes.Add(newItem);<br>&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; protected void BuildSubTree(ref TreeNode pNode, string ItemID)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TreeNode newItem;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newItem = new TreeNode();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //BuildSubTree(ref newItem, ...);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pNode.ChildNodes.Add(newItem);<br>&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; protected void addLabelCol(TableRow tRow, int irow, int icol, string strText, int iwidth, HorizontalAlign position)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TableCell tCell;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Label label;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tCell = new TableCell();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tCell.VerticalAlign = VerticalAlign.Middle;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tCell.HorizontalAlign = position;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tRow.Cells.Add(tCell);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; label = new Label();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; label.ID = "label_" + irow.ToString() + icol.ToString();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; label.Text = strText;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; label.Font.Bold = true;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; label.Width = Unit.Pixel(iwidth);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; label.EnableTheming = true;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tCell.Controls.Add(label);<br>&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; protected void addBranchImgButtonCol(TableCell tCell, int irow, int icol, string strText)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ImageButton imgBranchBtn;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imgBranchBtn = new ImageButton();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imgBranchBtn.CommandArgument = irow.ToString();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imgBranchBtn.ID = "imgBranchBtn_" + irow.ToString() + icol.ToString();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imgBranchBtn.ImageUrl = "~/App_Themes/Default/images/collapse.jpg";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imgBranchBtn.Click += new ImageClickEventHandler(imgBranchBtn_Click);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tCell.Controls.Add(imgBranchBtn);<br>&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; protected int nbspCount(string str)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int icount = 0;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; object[] objlist = UDF.ConvertToArray(str, ';');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach (object obj in objlist)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (obj.ToString() == "&amp;nbsp")<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; icount++;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return icount;<br>&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; protected void imgBranchBtn_Click(object sender, ImageClickEventArgs e)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ImageButton imgBranchBtn = (ImageButton)sender;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int irow = UDF.ToInt(imgBranchBtn.CommandArgument,0)-1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int iCurCount = 0;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string str="";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (imgBranchBtn.ImageUrl.Contains("collapse.jpg") == true)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imgBranchBtn.ImageUrl = "~/App_Themes/Default/images/expand.jpg";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (irow != -1)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (tbModuleList.Rows[irow].Cells[1].Controls[0] is LinkButton)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str = ((LinkButton)tbModuleList.Rows[irow].Cells[1].Controls[0]).Text;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (tbModuleList.Rows[irow].Cells[1].Controls[0] is ImageButton)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str = ((LinkButton)tbModuleList.Rows[irow].Cells[1].Controls[1]).Text;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iCurCount = nbspCount(str);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = irow + 1; i &lt; tbModuleList.Rows.Count; i++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (tbModuleList.Rows[i].Cells[1].Controls[0] is LinkButton)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str = ((LinkButton)tbModuleList.Rows[i].Cells[1].Controls[0]).Text;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (tbModuleList.Rows[i].Cells[1].Controls[0] is ImageButton)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str = ((LinkButton)tbModuleList.Rows[i].Cells[1].Controls[1]).Text;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (nbspCount(str) &gt; iCurCount)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tbModuleList.Rows[i].Visible = false;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imgBranchBtn.ImageUrl = "~/App_Themes/Default/images/collapse.jpg";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (irow != -1)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (tbModuleList.Rows[irow].Cells[1].Controls[0] is LinkButton)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str = ((LinkButton)tbModuleList.Rows[irow].Cells[1].Controls[0]).Text;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (tbModuleList.Rows[irow].Cells[1].Controls[0] is ImageButton)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str = ((LinkButton)tbModuleList.Rows[irow].Cells[1].Controls[1]).Text;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iCurCount = nbspCount(str);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = irow + 1; i &lt; tbModuleList.Rows.Count; i++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (tbModuleList.Rows[i].Cells[1].Controls[0] is LinkButton)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str = ((LinkButton)tbModuleList.Rows[i].Cells[1].Controls[0]).Text;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (tbModuleList.Rows[i].Cells[1].Controls[0] is ImageButton)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str = ((LinkButton)tbModuleList.Rows[i].Cells[1].Controls[1]).Text;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (nbspCount(str) &gt; iCurCount)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tbModuleList.Rows[i].Visible = true;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; protected void addImgButtonCol(TableRow tRow, int irow, int icol, string strText)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TableCell tCell;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ImageButton imgBtn;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tCell = new TableCell();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tCell.VerticalAlign = VerticalAlign.Middle;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tCell.HorizontalAlign = HorizontalAlign.Left;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tRow.Cells.Add(tCell);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imgBtn = new ImageButton();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imgBtn.CommandArgument = strText;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imgBtn.ID = "imgBtn_" + irow.ToString() + icol.ToString();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imgBtn.ImageUrl = "~/App_Themes/Default/images/delete.gif";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imgBtn.Click += new ImageClickEventHandler(imgBtn_Click);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AjaxControlToolkit.ConfirmButtonExtender confirm = new AjaxControlToolkit.ConfirmButtonExtender();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; confirm.TargetControlID = imgBtn.ID;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; confirm.ConfirmText = ToolBar.GetDeleteMsg();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; confirm.Enabled = true;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tCell.Controls.Add(imgBtn);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tCell.Controls.Add(confirm);<br>&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; protected void imgBtn_Click(object sender, ImageClickEventArgs e)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string strID = ((ImageButton)sender).CommandArgument;<br>&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; protected void addLnkButtonCol(TableRow tRow, int irow, int icol, string strText, int iwidth,Boolean addBranchICON)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TableCell tCell;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LinkButton lnkBtn;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tCell = new TableCell();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tCell.VerticalAlign = VerticalAlign.Middle;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tCell.HorizontalAlign = HorizontalAlign.Left;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tRow.Cells.Add(tCell);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lnkBtn = new LinkButton();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lnkBtn.ID = "lnkBtn_" + irow.ToString() + icol.ToString();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lnkBtn.Text = strText;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lnkBtn.Click += new EventHandler(lnkBtn_Click);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lnkBtn.Font.Bold = true;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lnkBtn.Width = Unit.Pixel(iwidth);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lnkBtn.EnableTheming = true;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (addBranchICON == true)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; addBranchImgButtonCol(tCell, irow, icol, strText);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tCell.Controls.Add(lnkBtn);<br>&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; //select this record<br>&nbsp;&nbsp;&nbsp; protected void lnkBtn_Click(object sender, EventArgs e)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string str = ((LinkButton)sender).Text;<br>&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; protected void BuildSubGridData(TreeNode pNode, ref int iRol)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TableRow tRow;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Module mdl = null;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; pNode.ChildNodes.Count; i++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int iCol = 1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (pNode.ChildNodes[i].ChildNodes.Count &gt; 0)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tRow = new TableRow();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (iRol % 2 == 0)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tRow.BackColor = Color.FromName(FstColor);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tRow.BackColor = Color.FromName(SecColor);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tbModuleList.Rows.Add(tRow);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ++iRol;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; addLabelCol(tRow, iRol, iCol++, "ColumA.Value", 100, HorizontalAlign.Left);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; addLabelCol(tRow, iRol, iCol++, "ColumB.Value", 100, HorizontalAlign.Left);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; addLabelCol(tRow, iRol, iCol++, "ColumC.Value", 100, HorizontalAlign.Left);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BuildSubGridData(pNode.ChildNodes[i], ref iRol);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; continue;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iCol = 1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tRow = new TableRow();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (iRol % 2 == 0)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tRow.BackColor = Color.FromName(FstColor);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tRow.BackColor = Color.FromName(SecColor);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;tbModuleList.Rows.Add(tRow);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ++iRol;<br>&nbsp;&nbsp;&nbsp;addLabelCol(tRow, iRol, iCol++, "ColumA.Value", 100, HorizontalAlign.Left);<br>&nbsp;&nbsp;&nbsp;addLabelCol(tRow, iRol, iCol++, "ColumB.Value", 100, HorizontalAlign.Left);<br>&nbsp;&nbsp;&nbsp;addLabelCol(tRow, iRol, iCol++, "ColumC.Value", 100, HorizontalAlign.Left);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; protected void BuildGridData(TreeView MainTree)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int iRol = 0;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int iCol = 1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TableRow tRow;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Module mdl = null;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tRow = new TableRow();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tRow.BackColor = Color.FromName("#84AED8");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tbModuleList.Rows.Add(tRow);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iRol++;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; addLabelCol(tRow, iRol, iCol++, "TitleA", 100, HorizontalAlign.Center);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; addLabelCol(tRow, iRol, iCol++, "TitleB", 100, HorizontalAlign.Center);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; addLabelCol(tRow, iRol, iCol++, "TitleC", 100, HorizontalAlign.Center);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; MainTree.Nodes.Count; i++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iCol = 1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tRow = new TableRow();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (iRol % 2 == 0)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tRow.BackColor = Color.FromName(FstColor);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tRow.BackColor = Color.FromName(SecColor);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UDF.SetRowHighlight(tRow); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tbModuleList.Rows.Add(tRow);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iRol++;<br>&nbsp;&nbsp;&nbsp;addLabelCol(tRow, iRol, iCol++, "ColumA.Value", 100, HorizontalAlign.Left);<br>&nbsp;&nbsp;&nbsp;addLabelCol(tRow, iRol, iCol++, "ColumB.Value", 100, HorizontalAlign.Left);<br>&nbsp;&nbsp;&nbsp;addLabelCol(tRow, iRol, iCol++, "ColumC.Value", 100, HorizontalAlign.Left);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (MainTree.Nodes[i].ChildNodes.Count &gt; 0)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BuildSubGridData(MainTree.Nodes[i], ref iRol);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DefaultCollapse();<br>&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; protected void DefaultCollapse()<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string str;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int iCurCount = 0;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ImageButton imgBranchBtn;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int k = 0; k &lt; tbModuleList.Rows.Count; k++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (tbModuleList.Rows[k].Cells[1].Controls[0] is ImageButton)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imgBranchBtn = (ImageButton)tbModuleList.Rows[k].Cells[1].Controls[0];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (imgBranchBtn.ImageUrl.Contains("collapse.jpg") == true)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imgBranchBtn.ImageUrl = "~/App_Themes/Default/images/expand.jpg";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str = ((LinkButton)tbModuleList.Rows[k].Cells[1].Controls[1]).Text;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iCurCount = nbspCount(str);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = k + 1; i &lt; tbModuleList.Rows.Count; i++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (tbModuleList.Rows[i].Cells[1].Controls[0] is LinkButton)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str = ((LinkButton)tbModuleList.Rows[i].Cells[1].Controls[0]).Text;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (tbModuleList.Rows[i].Cells[1].Controls[0] is ImageButton)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str = ((LinkButton)tbModuleList.Rows[i].Cells[1].Controls[1]).Text;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (nbspCount(str) &gt; iCurCount)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (tbModuleList.Rows[i].Cells[1].Controls[0] is ImageButton)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; continue;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tbModuleList.Rows[i].Visible = false;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; } </p>
<img src ="http://www.cnitblog.com/MartinYao/aggbug/39987.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/MartinYao/" target="_blank">玄铁剑</a> 2008-02-20 17:16 <a href="http://www.cnitblog.com/MartinYao/articles/39987.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ASP.net/javascript異步資料存取</title><link>http://www.cnitblog.com/MartinYao/articles/33808.html</link><dc:creator>玄铁剑</dc:creator><author>玄铁剑</author><pubDate>Thu, 20 Sep 2007 02:27:00 GMT</pubDate><guid>http://www.cnitblog.com/MartinYao/articles/33808.html</guid><wfw:comment>http://www.cnitblog.com/MartinYao/comments/33808.html</wfw:comment><comments>http://www.cnitblog.com/MartinYao/articles/33808.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/MartinYao/comments/commentRss/33808.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/MartinYao/services/trackbacks/33808.html</trackback:ping><description><![CDATA[//document.getElementById("ctl00_ContentPlace_lnkTest").click();Execute linkbutton<br><br>aspx:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br>&nbsp;&lt;table&gt;<br>&nbsp; &lt;tr&gt;&lt;td id="tdGridData"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:GridView ID="gvData" runat="server"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/asp:GridView&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;&lt;/tr&gt;<br>&nbsp; &lt;/table&gt;&nbsp;&nbsp; &nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br>&nbsp; function RefreshData()<br>&nbsp; { &nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp; var strPara = "...";//User $ split multiParameters<br>&nbsp;&nbsp;&nbsp;&nbsp; callToServer(strPara,"MarkOne");<br>&nbsp; } &nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br>&nbsp; function ReceiveServerData(result, content)<br>&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if( content == "MarkOne")<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp; &nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (result!="")<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var tdGridData = document.getElementById("tdGridData");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tdGridData.innerHTML&nbsp; = result;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert("No data to show.");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br>&nbsp; <br>&nbsp; <br>CS:<br>public partial class frmDemo : System.Web.UI.Page, ICallbackEventHandler<br>{<br>&nbsp;&nbsp;&nbsp; public string returnString="";<br><br>&nbsp;&nbsp;&nbsp; protected void Page_Load(object sender, EventArgs e)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RegEventEntry();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!IsPostBack)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataTable dt = InitialFromDB();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gvData.DataSource = dt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gvData.DataBind();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; protected void RegEventEntry()<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (Page.ClientScript.IsClientScriptBlockRegistered("callToServer") == false)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String cbReference =<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Page.ClientScript.GetCallbackEventReference(this, "arg", "ReceiveServerData", "context", true);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String callbackScript;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; callbackScript = "function callToServer(arg, context)" +<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "{ " + cbReference + "} ;";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Page.ClientScript.RegisterClientScriptBlock(this.GetType(),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "callToServer", callbackScript, true);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; string ICallbackEventHandler.GetCallbackResult()<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return returnString;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; void ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (eventArgument.Trim().Equals("") == false)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string[] strArgs = eventArgument.Split('$');<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;DataTable dt = getDataFromDB();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gvData.DataSource = dt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gvData.DataBind();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HtmlTextWriter htw = new HtmlTextWriter(new StringWriter());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gvData.RenderControl(htw);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; htw.Flush();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; htw.Close();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; returnString = htw.InnerWriter.ToString();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; returnString = "";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br>} &nbsp;<br>&nbsp; <br>
<img src ="http://www.cnitblog.com/MartinYao/aggbug/33808.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/MartinYao/" target="_blank">玄铁剑</a> 2007-09-20 10:27 <a href="http://www.cnitblog.com/MartinYao/articles/33808.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>常用Javascript功能</title><link>http://www.cnitblog.com/MartinYao/articles/28615.html</link><dc:creator>玄铁剑</dc:creator><author>玄铁剑</author><pubDate>Sun, 17 Jun 2007 05:04:00 GMT</pubDate><guid>http://www.cnitblog.com/MartinYao/articles/28615.html</guid><wfw:comment>http://www.cnitblog.com/MartinYao/comments/28615.html</wfw:comment><comments>http://www.cnitblog.com/MartinYao/articles/28615.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/MartinYao/comments/commentRss/28615.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/MartinYao/services/trackbacks/28615.html</trackback:ping><description><![CDATA[//检查是否是英文字符&nbsp;&nbsp; <br>&nbsp; function&nbsp;&nbsp; isEnglish(s,msg){&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; var&nbsp;&nbsp; reg=/^[a-z]*$/gi&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; if(reg.test(s.value))return&nbsp;&nbsp; true&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; else&nbsp;&nbsp; {&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert((msg?msg:'该栏目只能输入英文字符﹐请改正'));&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s.focus();&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s.select();&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return&nbsp;&nbsp; false;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br>&nbsp; }&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; <br>&nbsp; //检查是否是中文&nbsp;&nbsp; <br>&nbsp; function&nbsp;&nbsp; isChinese(s,msg){&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; var&nbsp;&nbsp; reg&nbsp;&nbsp; =&nbsp;&nbsp; /[^\u4E00-\u9FA5]/g;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; if&nbsp;&nbsp; (reg.test(s.value)){&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s.focus();&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s.select()&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert((msg?msg:'该栏只能输入中文﹐请改正！'));&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return&nbsp;&nbsp; false;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; return&nbsp;&nbsp; true;&nbsp;&nbsp; <br>&nbsp; }&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; <br>&nbsp; //检查是否是非中文&nbsp;&nbsp; <br>&nbsp; function&nbsp;&nbsp; isNoChinese(s,msg){&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; var&nbsp;&nbsp; reg&nbsp;&nbsp; =&nbsp;&nbsp; /[\u4E00-\u9FA5]|[\uFE30-\uFFA0]/gi;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; if&nbsp;&nbsp; (reg.test(s.value)){s.select()&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert((msg?msg:'该栏不能输入中文及全角符号﹐请改正！'));&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return&nbsp;&nbsp; false;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; return&nbsp;&nbsp; true;&nbsp;&nbsp; <br>&nbsp; } <br><br>&lt;scrīpt&gt;<br>var i = 0;<br>var j = 0;<br>function func()<br>{<br>var i = 2;//局部变量<br>j = 2;//全局变量<br>}<br>//i = 0;j = 2;<br>&lt;/scrip&gt;
<p>&nbsp;</p>
<p>字符串截取</p>
<p>.substring(&nbsp;start , end&nbsp;);<br><br>取屏幕分辨率<br>screen.width<br>screen.height<br><br>取屏幕可用宽高(去掉任务栏宽高)<br>screen.availWidth<br>screen.availHeight<br><br>取客户端屏幕大小<br>document.body.clientHeight<br>document.body.clientWidth</p>
<br>
<p>网页可见区域宽： document.body.clientWidth<br>网页可见区域高： document.body.clientHeight<br>网页可见区域宽： document.body.offsetWidth (包括边线的宽)<br>网页可见区域高： document.body.offsetHeight (包括边线的高)<br>网页正文全文宽： document.body.scrollWidth<br>网页正文全文高： document.body.scrollHeight<br>网页被卷去的高： document.body.scrollTop<br>网页被卷去的左： document.body.scrollLeft<br>网页正文部分上： window.screenTop<br>网页正文部分左： window.screenLeft<br>屏幕分辨率的高： window.screen.height<br>屏幕分辨率的宽： window.screen.width<br>屏幕可用工作区高度： window.screen.availHeight<br>屏幕可用工作区宽度： window.screen.availWidth</p>
<br>
<div style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: rgb(230,230,230) 0% 50%; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial">
<div><img title=点击图片可在新窗口打开 style="CURSOR: pointer" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: rgb(0,0,255)">&lt;!</span><span style="COLOR: rgb(255,0,255)">DOCTYPE&nbsp;html&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;XHTML&nbsp;1.0&nbsp;<br><img title=点击图片可在新窗口打开 style="CURSOR: pointer" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>Transitional//EN"<br><img title=点击图片可在新窗口打开 style="CURSOR: pointer" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br><img title=点击图片可在新窗口打开 style="CURSOR: pointer" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">html&nbsp;</span><span style="COLOR: rgb(255,0,0)">xmlns</span><span style="COLOR: rgb(0,0,255)">="http://www.w3.org/1999/xhtml"</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br><img title=点击图片可在新窗口打开 style="CURSOR: pointer" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span></div>
</div>
加上这段后，document.body.scrollTop永远等于0<br>body ōnscroll = "alert(document.body.scrollTop);"永远也不会引发。<br>在asp.net中做浮动窗口时困扰了我好久。<br>在标准w3c下，document.body.scrollTop恒为0，需要用document.documentElement.scrollTop来代替<br>
<p><br></p>
<br>
<p><br></p>
<p style="COLOR: rgb(0,1,2); FONT-FAMILY: Courier New"><font size=2>循环检测多个Email格式.</a></font> </p>
<div class=postText>
<p style="COLOR: rgb(0,1,2); FONT-FAMILY: Courier New" align=left><font size=2>/**<br>*Title:check email pattern Code<br>*Time:2006-11-24 <br>*Author:colinmok<br>*/</font></p>
<p style="COLOR: rgb(0,1,2); FONT-FAMILY: Courier New" align=left><font size=2>function chkSendEmail()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //检查是否为空<br>&nbsp;if(frmSendEmail.to.value==""){<br>&nbsp;&nbsp;alert("请输入1至10个Email!");<br>&nbsp;&nbsp;document.frmSendEmail.to.focus();<br>&nbsp;&nbsp;return false;<br>&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(frmSendEmail.name.value==""){<br>&nbsp;&nbsp;alert("请输入你的签名!");<br>&nbsp;&nbsp;document.frmSendEmail.name.focus();<br>&nbsp;&nbsp;return false;<br>&nbsp;}</font></p>
<p style="COLOR: rgb(0,1,2); FONT-FAMILY: Courier New" align=left><font size=2>&nbsp; //功能：正则表达式检测<br>&nbsp;&nbsp; var EmailArry = new Array(1000)&nbsp; //定义数组用来接收分割后的邮件<br>&nbsp;&nbsp; var Email=frmSendEmail.to.value&nbsp; //取得用户输入的值<br>&nbsp;&nbsp; var Email=Email.trim();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //调用下面去两边空格的函数<br>&nbsp;&nbsp; var Email=Email.AllTrim(Email);&nbsp; //调用去除中间空格的函数<br>&nbsp;&nbsp; var EmailArry=Email.split(";");&nbsp; //分割用户输入的Email</font></p>
<p style="COLOR: rgb(0,1,2); FONT-FAMILY: Courier New" align=left><font size=2>&nbsp; // document.write("去空格后:"+Email+"&lt;br&gt;");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //正则表达式检测Email格式<br>&nbsp; var pattern=/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;&nbsp; </font></p>
<p style="COLOR: rgb(0,1,2); FONT-FAMILY: Courier New" align=left><font size=2><br></font><font size=2>&nbsp;//循环检测每个email<br>&nbsp; for(var i=0;i&lt;EmailArry.length;i++)<br>&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //document.write("EmailArry["+i+"]:"+EmailArry[i]+"&lt;br&gt;");<br>　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; flag=pattern.test(EmailArry[i]);<br>　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!flag)<br>　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>　　　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert("第"+parseInt(i+1)+"个Email格式不对!!"+EmailArry[i]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.frmSendEmail.to.focus();<br>　　　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<br>　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></p>
<p style="FONT-FAMILY: Courier New" align=left><font color=#0000ff size=2><span style="COLOR: rgb(0,1,2)">&nbsp;&nbsp; return true;</span><br style="COLOR: rgb(0,1,2)"><span style="COLOR: rgb(0,1,2)">}</span><br style="COLOR: rgb(0,1,2)"><span style="COLOR: rgb(0,1,2)">//构造去掉空格函数</span><br style="COLOR: rgb(0,1,2)"><span style="COLOR: rgb(0,1,2)">String.prototype.trim=function()</span><br style="COLOR: rgb(0,1,2)"><span style="COLOR: rgb(0,1,2)">{</span><br style="COLOR: rgb(0,1,2)"><span style="COLOR: rgb(0,1,2)">// 用正则表达式将前后空格</span><br style="COLOR: rgb(0,1,2)"><span style="COLOR: rgb(0,1,2)">// 用空字符串替代。</span><br style="COLOR: rgb(0,1,2)"><span style="COLOR: rgb(0,1,2)">return this.replace(/(^\s*)|(\s*$)/g, "");</span><br style="COLOR: rgb(0,1,2)"><span style="COLOR: rgb(0,1,2)">}</span><br style="COLOR: rgb(0,1,2)"><span style="COLOR: rgb(0,1,2)">// 除去空格函数</span><br style="COLOR: rgb(0,1,2)"><span style="COLOR: rgb(0,1,2)">String.prototype.AllTrim= function()</span><br style="COLOR: rgb(0,1,2)"><span style="COLOR: rgb(0,1,2)">{</span><br style="COLOR: rgb(0,1,2)"><span style="COLOR: rgb(0,1,2)">&nbsp;&nbsp;&nbsp; var regEx = /\s*/g;</span><br style="COLOR: rgb(0,1,2)"><span style="COLOR: rgb(0,1,2)">&nbsp;&nbsp;&nbsp; return this.replace(regEx,'');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br style="COLOR: rgb(0,1,2)"><span style="COLOR: rgb(0,1,2)">}</span> </font></p>
<br>
<p align=left><br></p>
<br>
<p align=left><br>［OPTION操作］<br></p>
<p align=left>适应firefox/ie/opera的取option代码(jQuery)</p>
<p align=left>点击后取option<br></p>
<p align=left>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $( "form select#registerYear" ).change( function() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var iYear;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if( $.browser.mozilla ) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;iYear = this.options[this.selectedIndex].value;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;iYear = this.options[this.selectedIndex].innerText;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; alert( iYear );<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } );<br></p>
<br>
<p align=left>取option另一种方法：</p>
<p align=left>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $( "form select#registerMonth" ).change( function() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var selectYear = "";<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //if ( $.browser.mozilla ) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //selectYear = $( "form select#registerYear" ).val();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //} else {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; // selectYear = $( "form select#registerYear :selected" ).html();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //}<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; selectYear = $( "form select#registerYear :selected" ).html();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; alert( selectYear );<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } );</p>
<br>
<p align=left><br></p>
<p align=left><span style="COLOR: rgb(0,128,128)"></span><span style="COLOR: rgb(0,0,0)">1</span><span style="COLOR: rgb(0,0,0)">&nbsp;检测是否有选中<br></span><span style="COLOR: rgb(0,128,128)"></span><span style="COLOR: rgb(0,0,0)"></span><span style="COLOR: rgb(0,0,255)">if</span><span style="COLOR: rgb(0,0,0)">(objSelect.selectedIndex&nbsp;</span><span style="COLOR: rgb(0,0,0)">&gt;</span><span style="COLOR: rgb(0,0,0)">&nbsp;</span><span style="COLOR: rgb(0,0,0)">-</span><span style="COLOR: rgb(0,0,0)">1</span><span style="COLOR: rgb(0,0,0)">)&nbsp;</span><span id=Codehighlighter1_43_52_Closed_Text style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)"></span><span id=Codehighlighter1_43_52_Open_Text><span style="COLOR: rgb(0,0,0)">{<br></span><span style="COLOR: rgb(0,128,128)"></span><span style="COLOR: rgb(0,0,0)"></span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">说明选中</span><span style="COLOR: rgb(0,128,0)"><br></span><span style="COLOR: rgb(0,128,128)"></span><span style="COLOR: rgb(0,128,0)"></span><span style="COLOR: rgb(0,0,0)">}</span></span><span style="COLOR: rgb(0,0,0)">&nbsp;</span><span style="COLOR: rgb(0,0,255)">else</span><span style="COLOR: rgb(0,0,0)">&nbsp;</span><span id=Codehighlighter1_59_70_Closed_Text style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)"></span><span id=Codehighlighter1_59_70_Open_Text><span style="COLOR: rgb(0,0,0)">{<br></span><span style="COLOR: rgb(0,128,128)"></span><span style="COLOR: rgb(0,0,0)"></span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">说明没有选中</span><span style="COLOR: rgb(0,128,0)"><br></span><span style="COLOR: rgb(0,128,128)"></span><span style="COLOR: rgb(0,128,0)"></span><span style="COLOR: rgb(0,0,0)">}</span></span><span style="COLOR: rgb(0,0,0)"><br></span><span style="COLOR: rgb(0,128,128)"></span><span style="COLOR: rgb(0,0,0)"><br></span><span style="COLOR: rgb(0,128,128)"></span><span style="COLOR: rgb(0,0,0)"></span><span style="COLOR: rgb(0,0,0)">2</span><span style="COLOR: rgb(0,0,0)">&nbsp;删除被选中的项&nbsp;<br></span><span style="COLOR: rgb(0,128,128)"></span><span style="COLOR: rgb(0,0,0)">objSelect.options[objSelect.selectedIndex]&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;</span><span style="COLOR: rgb(0,0,255)">null</span><span style="COLOR: rgb(0,0,0)">;<br></span><span style="COLOR: rgb(0,128,128)"></span><span style="COLOR: rgb(0,0,0)"><br></span><span style="COLOR: rgb(0,128,128)"></span><span style="COLOR: rgb(0,0,0)"></span><span style="COLOR: rgb(0,0,0)">3</span><span style="COLOR: rgb(0,0,0)">&nbsp;增加项<br></span><span style="COLOR: rgb(0,128,128)"></span><span style="COLOR: rgb(0,0,0)">objSelect.options[objSelect.length]&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;</span><span style="COLOR: rgb(0,0,255)">new</span><span style="COLOR: rgb(0,0,0)">&nbsp;Option(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">你好</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">,</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">hello</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);</span><span style="COLOR: rgb(0,128,128)"></span><span style="COLOR: rgb(0,0,0)"><br></span><span style="COLOR: rgb(0,128,128)"></span><span style="COLOR: rgb(0,0,0)">4</span><span style="COLOR: rgb(0,0,0)">&nbsp;修改所选择中的项<br></span><span style="COLOR: rgb(0,128,128)"></span><span style="COLOR: rgb(0,0,0)">bjSelect.options[objSelect.selectedIndex]&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;</span><span style="COLOR: rgb(0,0,255)">new</span><span style="COLOR: rgb(0,0,0)">&nbsp;Option(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">你好</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">,</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">hello</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);</span><span style="COLOR: rgb(0,128,128)"></span></p>
<p align=left><span style="COLOR: rgb(0,128,128)"></span><span style="COLOR: rgb(0,0,0)"></span><span style="COLOR: rgb(0,128,128)"></span><span style="COLOR: rgb(0,0,0)"></span><span style="COLOR: rgb(0,0,0)">5</span><span style="COLOR: rgb(0,0,0)">&nbsp;得到所选择项的文本<br></span><span style="COLOR: rgb(0,128,128)"></span><span style="COLOR: rgb(0,0,0)">objSelect.options[objSelect.selectedIndex].text;<br></span><span style="COLOR: rgb(0,128,128)"></span><span style="COLOR: rgb(0,128,128)"></span><span style="COLOR: rgb(0,0,0)">6</span><span style="COLOR: rgb(0,0,0)">&nbsp;得到所选择项的值<br></span><span style="COLOR: rgb(0,128,128)"></span><span style="COLOR: rgb(0,0,0)">objSelect.options[objSelect.selectedIndex].value;</span></p>
<br>
<p align=left><br></p>
<br>
<p align=left>根据年份和月份取天</p>
<p align=left>&nbsp;&nbsp;&nbsp; function getMonthOption( iYear , iMonth ) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( iYear == "" || iMonth == "" ) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return "";<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var sHtml = "";<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var iDay = 30;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; switch ( iMonth ) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; case "1":<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; case "3":<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; case "5":<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; case "7":<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; case "8":<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; case "10":<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; case "11":<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; iDay = 31;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; break;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; case "4":<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; case "6":<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; case "9":<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; case "11":<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; iDay = 30;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; break;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; case "2":<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; iDay = ( iYear%4 == "" ) ? 29 : 28;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; break;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for ( var i = 1 ; i &lt;= iDay ; i++ ) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( i == 1 ) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sHtml += '&lt;option selected&gt;'+i+"&lt;/option&gt;\r\n";<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else {&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sHtml += "&lt;option&gt;"+i+"&lt;/option&gt;\r\n";<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //2月为28天<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return sHtml;<br>&nbsp;&nbsp;&nbsp; }</p>
<br>
<p align=left><br></p>
<br>
<p align=left>&lt;scrīpt&gt;<br><br><br>function car( a , b , c ) {<br>&nbsp;&nbsp;&nbsp; this.a = a;<br>&nbsp;&nbsp;&nbsp; this.b = b;<br>&nbsp;&nbsp;&nbsp; this.c = c;<br>}<br><br>car.prototype.getA = function( v ) {<br>&nbsp;&nbsp;&nbsp; alert( v );<br>}<br><br><br>&lt;/scrīpt&gt;<br></p>
</div>
<img src ="http://www.cnitblog.com/MartinYao/aggbug/28615.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/MartinYao/" target="_blank">玄铁剑</a> 2007-06-17 13:04 <a href="http://www.cnitblog.com/MartinYao/articles/28615.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>計算日期時間差</title><link>http://www.cnitblog.com/MartinYao/articles/25978.html</link><dc:creator>玄铁剑</dc:creator><author>玄铁剑</author><pubDate>Sat, 21 Apr 2007 10:27:00 GMT</pubDate><guid>http://www.cnitblog.com/MartinYao/articles/25978.html</guid><wfw:comment>http://www.cnitblog.com/MartinYao/comments/25978.html</wfw:comment><comments>http://www.cnitblog.com/MartinYao/articles/25978.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/MartinYao/comments/commentRss/25978.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/MartinYao/services/trackbacks/25978.html</trackback:ping><description><![CDATA[<p>計算日期的時間差(DateObject.dateDiff) </p>
<p>擴充方法原始碼如下:<br>&lt;script language="javascript"&gt;<br>&nbsp; Date.prototype.dateDiff = function(interval,objDate){<br>&nbsp;&nbsp;&nbsp; //若參數不足或 objDate 不是日期物件則回傳 undefined<br>&nbsp;&nbsp;&nbsp; if(arguments.length&lt;2||objDate.constructor!=Date) return undefined;<br>&nbsp;&nbsp;&nbsp; switch (interval) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //計算秒差<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "s":return parseInt((objDate-this)/1000);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //計算分差<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "n":return parseInt((objDate-this)/60000);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //計算時差<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "h":return parseInt((objDate-this)/3600000);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //計算日差<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "d":return parseInt((objDate-this)/86400000);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //計算週差<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "w":return parseInt((objDate-this)/(86400000*7));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //計算月差<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "m":return (objDate.getMonth()+1)+((objDate.getFullYear()-this.getFullYear())*12)-(this.getMonth()+1);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //計算年差<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "y":return objDate.getFullYear()-this.getFullYear();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //輸入有誤<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default:return undefined;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp; }<br>&lt;/script&gt;</p>
<p>呼叫此方法的範例如下:<br>&lt;script language="javascript"&gt;<br>var sDT = new Date("2000/12/31 08:00:00");<br>var eDT = new Date();<br>document.writeln("秒差 : "+sDT.dateDiff("s",eDT)+"&lt;br&gt;");<br>document.writeln("分差 : "+sDT.dateDiff("n",eDT)+"&lt;br&gt;");<br>document.writeln("時差 : "+sDT.dateDiff("h",eDT)+"&lt;br&gt;");<br>document.writeln("日差 : "+sDT.dateDiff("d",eDT)+"&lt;br&gt;");<br>document.writeln("週差 : "+sDT.dateDiff("w",eDT)+"&lt;br&gt;");<br>document.writeln("月差 : "+sDT.dateDiff("m",eDT)+"&lt;br&gt;");<br>document.writeln("年差 : "+sDT.dateDiff("y",eDT)+"&lt;br&gt;");<br>&lt;/script&gt;</p>
<p>&nbsp;</p>
<img src ="http://www.cnitblog.com/MartinYao/aggbug/25978.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/MartinYao/" target="_blank">玄铁剑</a> 2007-04-21 18:27 <a href="http://www.cnitblog.com/MartinYao/articles/25978.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FormatDateTime</title><link>http://www.cnitblog.com/MartinYao/articles/25977.html</link><dc:creator>玄铁剑</dc:creator><author>玄铁剑</author><pubDate>Sat, 21 Apr 2007 10:26:00 GMT</pubDate><guid>http://www.cnitblog.com/MartinYao/articles/25977.html</guid><wfw:comment>http://www.cnitblog.com/MartinYao/comments/25977.html</wfw:comment><comments>http://www.cnitblog.com/MartinYao/articles/25977.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/MartinYao/comments/commentRss/25977.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/MartinYao/services/trackbacks/25977.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp; function&nbsp;&nbsp; FormatDate(strdate,&nbsp;&nbsp; marks)&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var&nbsp;&nbsp; array_EnMonthName&nbsp;&nbsp; =&nbsp;&nbsp; ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; marks&nbsp;&nbsp; =&nbsp;&nbsp; marks&nbsp;&nbsp; ||&nbsp;&nbsp; "yyyy-MM-dd&nbsp;&nbsp; HH:mm:ss";&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var&nbsp;&nbsp; _date&nbsp;&nbsp; =&nbsp;&nbsp; new&nbsp;&nbsp; Date(strdate);&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var&nbsp;&nbsp; _returnDate&nbsp;&nbsp; =&nbsp;&nbsp; marks.replace("yyyy",&nbsp;&nbsp; _date.getFullYear());&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if&nbsp;&nbsp; (_returnDate.indexOf("MMM")&nbsp;&nbsp; &gt;&nbsp;&nbsp; -1)&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _returnDate&nbsp;&nbsp; =&nbsp;&nbsp; _returnDate.replace("MMM",&nbsp;&nbsp; array_EnMonthName[_date.getMonth()]);&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _returnDate&nbsp;&nbsp; =&nbsp;&nbsp; _returnDate.replace("MM",&nbsp;&nbsp; PutPrefix(_date.getMonth()+1,&nbsp;&nbsp; 2,&nbsp;&nbsp; "0"));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _returnDate&nbsp;&nbsp; =&nbsp;&nbsp; _returnDate.replace("dd",&nbsp;&nbsp; PutPrefix(_date.getDate(),&nbsp;&nbsp; 2,&nbsp;&nbsp; "0"));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if&nbsp;&nbsp; (_returnDate.indexOf("HH")&nbsp;&nbsp; &gt;&nbsp;&nbsp; -1)&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _returnDate&nbsp;&nbsp; =&nbsp;&nbsp; _returnDate.replace("HH",&nbsp;&nbsp; PutPrefix(_date.getHours(),&nbsp;&nbsp; 2,&nbsp;&nbsp; "0"));&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if&nbsp;&nbsp; (_returnDate.indexOf("mm")&nbsp;&nbsp; &gt;&nbsp;&nbsp; -1)&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _returnDate&nbsp;&nbsp; =&nbsp;&nbsp; _returnDate.replace("mm",&nbsp;&nbsp; PutPrefix(_date.getMinutes(),&nbsp;&nbsp; 2,&nbsp;&nbsp; "0"));&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if&nbsp;&nbsp; (_returnDate.indexOf("ss")&nbsp;&nbsp; &gt;&nbsp;&nbsp; -1)&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _returnDate&nbsp;&nbsp; =&nbsp;&nbsp; _returnDate.replace("ss",&nbsp;&nbsp; PutPrefix(_date.getSeconds(),&nbsp;&nbsp; 2,&nbsp;&nbsp; "0"));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return&nbsp;&nbsp; _returnDate;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; function&nbsp;&nbsp; PutPrefix(str,&nbsp;&nbsp; len,&nbsp;&nbsp; _char)&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var&nbsp;&nbsp; s&nbsp;&nbsp; =&nbsp;&nbsp; "";&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for&nbsp;&nbsp; (var&nbsp;&nbsp; i&nbsp;&nbsp; =&nbsp;&nbsp; 0;&nbsp;&nbsp; i&nbsp;&nbsp; &lt;&nbsp;&nbsp; len+1;&nbsp;&nbsp; i++)&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s&nbsp;&nbsp; +=&nbsp;&nbsp; _char;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s&nbsp;&nbsp; +=&nbsp;&nbsp; str;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return&nbsp;&nbsp; s.substring(s.length-len);&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; </p>
<p><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; objEndTime.innerText =FormatDate(endTime,"yyyy-MM-dd HH:mm:ss");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br></p>
<img src ="http://www.cnitblog.com/MartinYao/aggbug/25977.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/MartinYao/" target="_blank">玄铁剑</a> 2007-04-21 18:26 <a href="http://www.cnitblog.com/MartinYao/articles/25977.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IE7兼容Iframe高度問題及Iframe問題</title><link>http://www.cnitblog.com/MartinYao/articles/25976.html</link><dc:creator>玄铁剑</dc:creator><author>玄铁剑</author><pubDate>Sat, 21 Apr 2007 10:25:00 GMT</pubDate><guid>http://www.cnitblog.com/MartinYao/articles/25976.html</guid><wfw:comment>http://www.cnitblog.com/MartinYao/comments/25976.html</wfw:comment><comments>http://www.cnitblog.com/MartinYao/articles/25976.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/MartinYao/comments/commentRss/25976.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/MartinYao/services/trackbacks/25976.html</trackback:ping><description><![CDATA[<p>&lt;body&gt;<br>&nbsp;&nbsp;&nbsp; &lt;iframe marginheight="0" marginwidth="0" src="Default.aspx" frameborder="0" scrolling="no" width="100%" id="info_iframe" name="info_content" onload="change_size()"&gt;&lt;/iframe&gt;<br>&lt;/body&gt;</p>
<p>&lt;head&gt;<br>&nbsp; &lt;script language="javascript"&gt;<br>&nbsp;&nbsp;&nbsp; function change_size()<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById("info_iframe").style.height=info_content.document.body.scrollHeight+1+"px";<br>&nbsp;&nbsp;&nbsp; }&nbsp; <br>&nbsp; &lt;/script&gt;<br>&lt;/head&gt;<br><br><br><br>防止被人frame&nbsp;&nbsp; <br>&nbsp; &lt;SCRIPT&nbsp;&nbsp; LANGUAGE=JAVASCRIPT&gt;&lt;!--&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp; if&nbsp;&nbsp; (top.location&nbsp;&nbsp; !=&nbsp;&nbsp; self.location)top.location=self.location;&nbsp;&nbsp; <br>&nbsp; //&nbsp;&nbsp; --&gt;&lt;/SCRIPT&gt;</p>
<img src ="http://www.cnitblog.com/MartinYao/aggbug/25976.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/MartinYao/" target="_blank">玄铁剑</a> 2007-04-21 18:25 <a href="http://www.cnitblog.com/MartinYao/articles/25976.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>