频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

Asp.net 2.0 自定义控件开发

来源:博客园 作者:佚名 出处:巧巧读书 2008-04-07 进入讨论组
    (三). 代码部分

    1. 主控件类ToolButton代码:

   1 /// <summary>
      2 /// Author: 【金鹰】【专注于DotNet技术】【ChengKing(ZhengJian)】
      3 /// Blog:   Http://blog.csdn.net/ChengKing
      4 /// </summary>
      5
      6 using System;
      7 using System.Collections.Generic;
      8 using System.ComponentModel;
      9 using System.Text;
     10 using System.Web;
     11 using System.Web.UI;
     12 using System.Web.UI.WebControls;
     13 using System.Web.UI.HtmlControls;
     14 using System.IO;
     15 using System.Drawing;
     16
     17 namespace ToolButton
     18 {
     19     [DefaultProperty("Text")]
     20     [ToolboxData("<{0}:ToolButton runat=server></{0}:ToolButton>")]
     21     public class ToolButton : CompositeControl, INamingContainer
     22     {
     23         #region 内部变量
     24
     25         //含下拉箭头单元格的ID
     26         private string tcDownID = "";
     27
     28         //本控件的ID
     29         private string tbID = "";
     30
     31         #endregion
     32
     33         #region 属性
     34
     35         /// <summary>
     36         /// 设置或获取显示的文本
     37         /// </summary>
     38         [Bindable(true)]
     39         [Category("Appearance")]
     40         [DefaultValue("[按钮文本]")]
     41         [Localizable(true)]
     42         [Description("显示的文本")]
     43         public string Text
     44         {
     45             get
     46             {
     47                 string s = (string)ViewState["Text"];
     48                 return ((s == null) ? String.Empty : s);
     49             }
     50             set
     51             {
     52                 ViewState["Text"] = value;
     53             }
     54         }
     55
     56         /// <summary>
     57         /// 设置或获取图片路径
     58         /// </summary>
     59         [Bindable(true)]
     60         [Category("Appearance")]
     61         [DefaultValue("NoPic.gif")]
     62         [Localizable(true)]
     63         [Description("显示图像的文件名")]
     64         public string ImageName
     65         {
     66             get
     67             {
     68                 String s = (String)ViewState["ImageName"];
     69                 return ((s == null) ? String.Empty : s);
     70             }
     71
     72             set
     73             {
     74                 ViewState["ImageName"] = value;
     75             }
     76         }
     77
     78         /// <summary>
     79         /// 设置或获取图片文件夹目录
     80         /// </summary>
     81         [Bindable(true)]
     82         [Category("客户端路径")]
     83         [DefaultValue("")]
     84         [Localizable(true)]
     85         [Description("资源(image/css/js)的客户端根目录")]
     86         public string ClientPath
     87         {
     88             get
     89             {
     90                 String s = (String)ViewState["ClientPath"];
     91                 return ((s == null) ? String.Empty : s);
     92             }
     93
     94             set
     95             {
     96                 ViewState["ClientPath"] = value;
     97             }
     98         }
     99
    100         /// <summary>
    101         ///  设置或获取点击按钮执行的命令(点击大按钮执行的命令)
    102         /// </summary>
    103         [Bindable(true)]
    104         [Category("行为")]
    105         [DefaultValue("")]
    106         [Localizable(true)]
    107         [Description("点击控件执行的命令字串")]
    108         public string Command
    109         {
    110             get
    111             {
    112                 string s = (string)ViewState["Command"];
    113                 return ((s == null) ? String.Empty : s);
    114             }
    115             set
    116             {
    117                 ViewState["Command"] = value;
    118             }
    119         }
    120
    121         private PopupMenu _Items = new PopupMenu();
    122
    123         /// <summary>
    124         /// 获取子菜单集合
    125         /// </summary>
    126         [PersistenceMode(PersistenceMode.InnerDefaultProperty)]
    127         [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
    128         [Description("获取或设置下拉子菜单项集合")]
    129         [Category("杂项")]
    130         [NotifyParentProperty(true)]
    131         [TypeConverter(typeof(CollectionConverter))]
    132         [DesignOnly(false)]
    133         public PopupMenu Items
    134         {
    135             get
    136             {
    137                 if (_Items == null)
    138                 {
    139                     _Items = new PopupMenu();
    140                 }
    141                 return _Items;
    142             }
    143         }
    144
    145         /// <summary>
    146         /// 设置或获取子菜单集合句柄
    147         /// </summary>
    148         [Browsable(false)]
    149         [Description("获取或设置菜单")]
    150         public PopupMenu Menu
    151         {
    152             get
    153             {
    154                 return _Items;
    155             }
    156             set
    157             {
    158                 this._Items.Clear();
    159                 foreach (PopupMenuItem item in value)
    160                 {
    161                     this._Items.Add(item);
    162                 }
    163             }
    164         }
    165
    166         [Browsable(true)]
    167         [Category("CSS样式")]
    168         [Description("获取或设置主控件的OnMouseOver样式")]
    169         public string CSS_MAIN_ONMOUSEOVER_CLASSNAME
    170         {
    171             get
    172             {
    173                 string s = (string)ViewState["CSS_MAIN_ONMOUSEOVER"];
    174                 return ((s == null) ? String.Empty : s);
    175             }
    176             set
    177             {
    178                 ViewState["CSS_MAIN_ONMOUSEOVER"] = value;
    179             }
    180         }
    181         [Browsable(true)]
    182         [Category("CSS样式")]
    183         [Description("获取或设置主控件的OnMouseOut样式")]
    184         public string CSS_MAIN_ONMOUSEOUT_CLASSNAME
    185         {
    186             get
    187             {
    188                 string s = (string)ViewState["CSS_MAIN_ONMOUSEOUT"];
    189                 return ((s == null) ? String.Empty : s);
    190             }
    191             set
    192             {
    193                 ViewState["CSS_MAIN_ONMOUSEOUT"] = value;
    194             }
    195         }
    196         [Browsable(true)]
    197         [Category("CSS样式")]
    198         [Description("获取或设置下拉款项的OnMouseOver样式")]
    199         public string CSS_SUBITEM_ONMOUSEOVER_CLASSNAME
    200         {
    201             get
    202             {
    203                 string s = (string)ViewState["CSS_SUBITEM_ONMOUSEOVER"];
    204                 return ((s == null) ? String.Empty : s);
    205             }
    206             set
    207             {
    208                 ViewState["CSS_SUBITEM_ONMOUSEOVER"] = value;
    209             }
    210         }
    211         [Browsable(true)]
    212         [Category("CSS样式")]
    213         [Description("获取或设置下拉款项的OnMouseOut样式")]
    214         public string CSS_SUBITEM_ONMOUSEOUT_CLASSNAME
    215         {
    216             get
    217             {
    218                 string s = (string)ViewState["CSS_SUBITEM_ONMOUSEOUT"];
    219                 return ((s == null) ? String.Empty : s);
    220             }
    221             set
    222             {
    223                 ViewState["CSS_SUBITEM_ONMOUSEOUT"] = value;
    224             }
    225         }
    226
    227
    228         #endregion
    229
    230         #region 构造函数
    231
    232         /// <summary>
    233         /// 构造函数
    234         /// </summary>
    235         public ToolButton()
    236         {
    237             //设置一套默认风格
    238             this.BackColor = Color.FromName("MenuBar");//ViewState["BackColor"] = Color.FromName("MenuBar");
    239             ViewState["Text"] = "[按钮文本]";
    240             //ViewState["ClientPath"] = "ToolButtonImages";
    241             ViewState["ImageName"] = "NoPic.gif";
    242             this.BorderStyle = BorderStyle.NotSet;//ViewState["BorderStyle"] = BorderStyle.NotSet;
    243             this.BorderWidth = Unit.Pixel(1);//ViewState["BorderWidth"] = Unit.Pixel(1);
    244             this.BorderColor = Color.FromName("ControlDark");//ViewState["BorderColor"] = Color.FromName("ControlDark");
    245             this.Height = Unit.Pixel(25);//ViewState["Height"] = Unit.Pixel(25);
    246             //this.Width = Unit.Pixel(100);]
    247         }
    248
    249         #endregion
    250
    251         #region 方法
    252
    253         protected override void Render(HtmlTextWriter writer)
    254         {
    255             //base.Render(writer);
    256             PrepareControlForRendering();
    257             base.RenderContents(writer);
    258         }
    259
    260         /// <summary>
    261         /// 设置控件树的样式和客户端事件
    262         /// </summary>
    263         private void PrepareControlForRendering()
    264         {
    265
    266             if (this.Controls.Count < 1)
    267             {
    268                 return;
    269             }
    270
    271             bool IsCustomStyle = CSS_MAIN_ONMOUSEOVER_CLASSNAME != String.Empty && CSS_MAIN_ONMOUSEOUT_CLASSNAME != String.Empty;
    272
    273             Table t = (Table)this.Controls[0];
    274             t.CellPadding = 0;
    275             t.CellSpacing = 0;
    276             t.Style.Add("Cursor", "default");
    277             t.CopyBaseAttributes(this);
    278             t.Height = this.Height;
    279             t.Width = this.Width;
    280             t.BorderStyle = this.BorderStyle;
    281             t.BorderWidth = Unit.Pixel(0);
    282             t.Attributes.Add("onselectstart", "return false;");
    283
    284             //t.Style.Add("aligh", "left");
    285             //t.Style.Add("table-layout", "fixed");
    286             //t.Style.Add("word-wrap", "break-word");
    287             //***style="display:inline-block
    288             //t.Style.Add("display:inline", "block");
    289
    290             //if (CSS_MAIN_ONMOUSEOVER_CLASSNAME != String.Empty && CSS_MAIN_ONMOUSEOUT_CLASSNAME != String.Empty)
    291             //{
    292             //    t.CssClass = this.CSS_MAIN_ONMOUSEOUT_CLASSNAME;
    293             //    t.Attributes.Add("onmouseenter", "ChangeClassName(this, '" + CSS_MAIN_ONMOUSEOVER_CLASSNAME + "')");
    294             //    t.Attributes.Add("onmouseleave", "ChangeClassName(this, '" + CSS_MAIN_ONMOUSEOUT_CLASSNAME + "')");
    295             //}
    296
    297
    298             if (t.Rows.Count > 0)
    299             {
    300                 TableRow tr = t.Rows[0];
    301                 //if (IsCustomStyle == false)
    302                 //{
    303                     tr.BorderWidth = Unit.Pixel(0);
    304                // }
    305
    306
    307                 ////应用用户定义样式
    308                 //if (IsCustomStyle)
    309                 //{
    310                 //    tr.CssClass = this.CSS_MAIN_ONMOUSEOUT_CLASSNAME;
    311                 //    tr.Attributes.Add("onmouseenter", "ChangeClassName(this, '" + CSS_MAIN_ONMOUSEOVER_CLASSNAME + "')");
    312                 //    tr.Attributes.Add("onmouseleave", "ChangeClassName(this, '" + CSS_MAIN_ONMOUSEOUT_CLASSNAME + "')");
    313                 //}
    314
    315                 for (int i = 0; i < tr.Cells.Count; i++)
    316                 {
    317                     TableCell tc = tr.Cells[i];
    318                     //tc.Style.Add("align", "left");
    319                     if (IsCustomStyle == false)
    320                     {
    321                         tc.BorderColor = this.BorderColor;
    322                         tc.BorderStyle = this.BorderStyle;
    323                     }
    324
    325                     string strBorderWidth = int.Parse(this.BorderWidth.Value.ToString()).ToString();
    326
    327                     //应用用户定义样式
    328                     if (IsCustomStyle)
    329                     {
    330                         tc.CssClass = this.CSS_MAIN_ONMOUSEOUT_CLASSNAME;
    331                     }
    332                     else
    333                     {
    334                         tc.CssClass = this. CssClass;
    335                     }
    336
    337
    338                     if (i == 0)
    339                     {
    340                         if (IsCustomStyle == false)
    341                         {
    342                             tc.BorderWidth = this.BorderWidth;
    343                             tc.Style.Add("border-Width", strBorderWidth + "px 0px " + strBorderWidth + "px " + strBorderWidth + "px");
    344                         }
    345                         else
    346                         {
    347                             tc.Style.Add("border-Right-Width", "0px");
    348                             //固定Border-width
    349                             //tc.Style.Add("border-Width", "1px 0px 1px 1px");
    350                         }
    351
    352                         if (this.Command != null && this.Command.Length > 0)
    353                         {
    354                             string strCommand = this.Command.Trim().Replace("\"", "'").Replace("&nbsp;", "");
    355                             tc.Attributes.Add("onclick", strCommand);
    356
    357                             if (IsCustomStyle == false)
    358                             {
    359                                 string str = Color.FromName("LightGray").ToString();
    360                                 tc.Attributes.Add("onmouseenter", "this.style.borderStyle='inset'; this.parentElement.children(1).style.borderStyle='inset';");
    361                                 tc.Attributes.Add("onmouseleave", "this.style.borderStyle='outset';this.parentElement.children(1).style.borderStyle='outset';");
    362                             }
    363                             else
    364                             {
    365                                 tc.Attributes.Add("onmouseenter", "ChangeClassName(this, '" + CSS_MAIN_ONMOUSEOVER_CLASSNAME + "');" + "ChangeClassName(this.parentElement.children(1), '" + CSS_MAIN_ONMOUSEOVER_CLASSNAME + "');");
    366                                 tc.Attributes.Add("onmouseleave", "ChangeClassName(this, '" + CSS_MAIN_ONMOUSEOUT_CLASSNAME + "');" + "ChangeClassName(this.parentElement.children(1), '" + CSS_MAIN_ONMOUSEOUT_CLASSNAME + "');");
    367                             }
    368                         }
    369
    370                         //tc.Style.Add("border-color", "red");
    371                         //tc.Style.Add("width", ((System.Web.UI.WebControls.Image)tc.Controls[0]).Width.ToString());
    372                     }
    373                     else if (i == 1)
    374                     {
    375                         if (IsCustomStyle == false)
    376                         {
    377                             tc.BorderWidth = this.BorderWidth;
    378                             tc.Style.Add("border-Width", strBorderWidth + "px 0px " + strBorderWidth + "px 0px");
    379                         }
    380                         else
    381                         {
    382                             tc.Style.Add("border-Left-Width", "0px");
    383                             //固定Border-width
    384                             //tc.Style.Add("border-Width", "1px 1px 1px 0px");
    385                         }
    386
    387                         if (this.Command != null && this.Command.Length > 0)
    388                         {
    389                             string strCommand = this.Command.Trim().Replace("\"", "'").Replace("&nbsp;", "");
    390                             tc.Attributes.Add("onclick", strCommand);
    391                             if (IsCustomStyle == false)
    392                             {
    393                                 tc.Attributes.Add("onmouseenter", "this.style.borderStyle='inset'; this.parentElement.children(0).style.borderStyle='inset';");
    394                                 tc.Attributes.Add("onmouseleave", "this.style.borderStyle='outset';this.parentElement.children(0).style.borderStyle='outset';");
    395                             //    tc.CssClass = "mainexit";
    396                             //    tc.Attributes.Add("onmouseenter", "ChangeClassName(this, 'mainfocus');ChangeClassName(this.parentElement.children(0),'mainfocus');");
    397                             //    tc.Attributes.Add("onmouseleave", "ChangeClassName(this, 'mainexit');ChangeClassName(this.parentElement.children(0),'mainexit');");
    398                             }
    399                             else
    400                             {
    401                                 tc.Attributes.Add("onmouseenter", "ChangeClassName(this, '" + CSS_MAIN_ONMOUSEOVER_CLASSNAME + "');" + "ChangeClassName(this.parentElement.children(0), '" + CSS_MAIN_ONMOUSEOVER_CLASSNAME + "');");
    402                                 tc.Attributes.Add("onmouseleave", "ChangeClassName(this, '" + CSS_MAIN_ONMOUSEOUT_CLASSNAME + "');" + "ChangeClassName(this.parentElement.children(0), '" + CSS_MAIN_ONMOUSEOUT_CLASSNAME + "');");
    403                             }
    404                         }
    405
    406                         if (IsCustomStyle == false)
    407                         {
    408                             tc.Font.MergeWith(this.Font);
    409                         }
    410                     }
    411                     else if (i == 2)
    412                     {
    413                         if (IsCustomStyle == false)
    414                         {
    415                             tc.BorderWidth = this.BorderWidth;
    416                         }
    417                         else
    418                         {
    419                             //固定Border-width
    420                             //tc.Style.Add("border-Width","1px 1px 1px 1px");
    421                         }
    422                         if (IsCustomStyle == true)
    423                         {
    424                             tc.Attributes.Add("onmouseenter", "ChangeClassName(this, '" + CSS_MAIN_ONMOUSEOVER_CLASSNAME + "');");
    425                             tc.Attributes.Add("onmouseleave", "ChangeClassName(this, '" + CSS_MAIN_ONMOUSEOUT_CLASSNAME + "');");
    426                         }
    427                         else
    428                         {
    429                             tc.Attributes.Add("onmouseenter", "this.style.borderStyle='inset';");
    430                             tc.Attributes.Add("onmouseleave", "this.style.borderStyle='outset';");
    431                         }
    432                         //tc.Style.Add("border-color", "red");
    433                     }
    434
    435                     if (IsCustomStyle == false)
    436                     {
    437                         tc.ForeColor = this.ForeColor;
    438                         tc.BackColor = this.BackColor;
    439                     }
    440
    441                     if (tc.ID == tcDownID)
    442                     {
    443                         if (this.Items.Count > 0)
    444                         {
    445                             tc.Attributes.Add("onclick", "activeMenu('" + this.UniqueID + "');");
    446                         }
    447                         else
    448                         {
    449                             tc.Enabled = false;
    450                             //tc.Style.Add("display", "none");
    451                             if (tc.Parent.Controls.Count >= 2)
    452                             {
    453                                 ((TableCell)tc.Parent.Controls[1]).Style.Add("border-Right-Width", "1px");
    454                             }
    455                         }
    456                     }
    457                 }
    458             }
    459         }
    460
    461         /// <summary>
    462         /// 创建子控件的层次结构
    463         /// </summary>
    464         protected override void CreateChildControls()
    465         {
    466             Table t = new Table();
    467             tbID = this.UniqueID + "_table";
    468             t.ID = tbID;
    469
    470             TableRow tr = new TableRow();
    471             t.Rows.Add(tr);
    472
    473             TableCell tc_img = new TableCell();
    474             if (this.ClientPath != String.Empty || this.ImageName != String.Empty)
    475             {
    476                 string strImageUrl = Path.Combine(this.ClientPath, "ToolButtonImages\\" + this.ImageName);
    477                 System.Web.UI.WebControls.Image image = new System.Web.UI.WebControls.Image();
    478                 image.BorderWidth = Unit.Pixel(0);
    479                 image.ImageUrl = strImageUrl;
    480                 tc_img.Controls.Add(image);
    481                 tr.Cells.Add(tc_img);
    482             }
    483
    484             TableCell tc_text = new TableCell();
    485             tc_text.Controls.Add(new LiteralControl("&nbsp;" + this.Text + "&nbsp;"));
    486             tr.Cells.Add(tc_text);
    487
    488             TableCell tc_downmenu = new TableCell();
    489             tcDownID = this.UniqueID + "tcDown";
    490             tc_downmenu.ID = tcDownID;
    491             tc_downmenu.Controls.Add(new LiteralControl("<font size=1>▼</font>"));
    492             tr.Cells.Add(tc_downmenu);
    493
    494             this.Controls.Add(t);
    495             base.CreateChildControls();
    496         }
    497
    498         //protected override void RenderContents(HtmlTextWriter writer)
    499         //{
    500         //    base.RenderContents(writer);
    501         //}
    502
    503         /// <summary>
    504         /// 注册客户端脚本
    505         /// </summary>
    506         /// <param name="e"></param>
    507         protected override void OnPreRender(EventArgs e)
    508         {
    509
    510             //引用JS文件
    511             if (!Page.ClientScript.IsClientScriptBlockRegistered(this.GetType(), "BuildMenu"))
    512             {
    513                 //string jsPath = clientPath + "/Js/" + "jsscript.js";
    514                 Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "BuildMenu",
    515                     "<script type='text/javascript' src='js/ToolButton_JScript.js'></script>");
    516             }
    517
    518
    519             ///<summary>
    520             /// 注册makeMenu方法脚本
    521             ///<summary>
    522             StringBuilder strAddMenuItemScript = new StringBuilder();
    523             if (this.Items.Count != 0)
    524             {
    525                 //if (this.CSS_MAIN_ONMOUSEOUT_CLASSNAME != String.Empty)
    526                 //{
    527
    528                 //    TableCell tc = new TableCell();
    529                 //    tc.CssClass = this.CSS_MAIN_ONMOUSEOUT_CLASSNAME;
    530                 //    Color c = tc.BorderColor;
    531                 //}
    532
    533                 strAddMenuItemScript.Append(" function makeMenu"+this.UniqueID+"(UniqueID)");
    534                 strAddMenuItemScript.Append(" { ");
    535                 strAddMenuItemScript.Append("   var myMenu, item;  ");
    536                 strAddMenuItemScript.Append("                           ");
    537                 strAddMenuItemScript.Append("                               ");
    538                 strAddMenuItemScript.Append("   myMenu = new contextMenu(UniqueID); ");
    539                 strAddMenuItemScript.Append("                               ");
    540                 foreach (PopupMenuItem item in this.Items)
    541                 {
    542                     string strImageSrc;
    543                     strImageSrc = Path.Combine(this.ClientPath, @"ToolButtonImages\" + item.ImageName);
    544                     strImageSrc = strImageSrc.Replace("\\", "\\\\");
    545
    546                     string strCommand;
    547                     try
    548                     {
    549                         strCommand = item.Command.Trim().Replace("\"", "'").Replace("&nbsp;", "");
    550                     }
    551                     catch
    552                     {
    553                         strCommand = null;
    554                     }
    555
    556                     strAddMenuItemScript.Append("   item = new contextItem('" + (item.Text == null ? " " : item.Text) + "','" + strImageSrc + "',\"" + (strCommand == null ? "" : (strCommand + "; hideCurrentMenu()")) + "\",'" + "Menu" + "','" + this.CSS_SUBITEM_ONMOUSEOVER_CLASSNAME + "','" + this.CSS_SUBITEM_ONMOUSEOUT_CLASSNAME + "');");
    557                     strAddMenuItemScript.Append("   myMenu.addItem(item); ");
    558
    559                 }
    560                 strAddMenuItemScript.Append(" ");
    561                 strAddMenuItemScript.Append(" myMenu.show(this.document);");
    562                 strAddMenuItemScript.Append(" ");
    563                 strAddMenuItemScript.Append(" delete item;");
    564                 strAddMenuItemScript.Append("  delete myMenu;");
    565                 strAddMenuItemScript.Append(" }");
    566             }
    567             else
    568             {
    569                 strAddMenuItemScript.Append(" function makeMenu"+this.UniqueID+"(UniqueID)");
    570                 strAddMenuItemScript.Append(" { ");
    571                 //strAddMenuItemScript.Append("   alert('No Set Items Property!');");
    572                 strAddMenuItemScript.Append(" }");
    573             }
    574
    575             if (!Page.ClientScript.IsClientScriptBlockRegistered(this.GetType(), "AddMenuItemScript"+this.UniqueID))
    576             {
    577                 Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "AddMenuItemScript"+this.UniqueID, strAddMenuItemScript.ToString(), true);
    578             }
    579
    580             /////<summary>
    581             ///// 注册contextMenu方法脚本
    582             /////<summary>
    583             //StringBuilder strCreateDiv = new StringBuilder();
    584             //strCreateDiv.Append("function contextMenu" + this.UniqueID + "()");
    585             //strCreateDiv.Append("{\r\n");
    586             //strCreateDiv.Append("this.items   = new Array();\r\n");
    587             //strCreateDiv.Append("this.addItem = function(item)\r\n");
    588             //strCreateDiv.Append("{\r\n");
    589             //strCreateDiv.Append(" this.items[this.items.length] = item;\r\n");
    590             //strCreateDiv.Append("}\r\n");
    591             //strCreateDiv.Append("this.show = function (oDoc)\r\n");
    592             //strCreateDiv.Append("{\r\n");
    593             //strCreateDiv.Append(" var strShow = \"\";\r\n");
    594             //strCreateDiv.Append(" var i;\r\n");
    595             //strCreateDiv.Append(" strShow = \"<div id='rightmenu" + this.UniqueID + "' onclick='event.cancelBubble=true;return true;' style='BACKGROUND-COLOR: system; BORDER: #000000 1px solid; LEFT: 0px; POSITION: absolute; TOP: 0px; display: none; Z-INDEX: 10'>\"; \r\n");
    596             //strCreateDiv.Append(" strShow += \"<table border='0' height='\"; \r\n");
    597             //strCreateDiv.Append(" strShow += this.items.length * 15;\r\n");
    598             //strCreateDiv.Append(" strShow += \"' cellpadding='0' cellspacing='0'>\";\r\n");
    599             //strCreateDiv.Append(" oDoc.write(strShow);\r\n");
    600             //strCreateDiv.Append(" for(i=0; i<this.items.length; i++)\r\n");
    601             //strCreateDiv.Append(" {\r\n");
    602             //strCreateDiv.Append("  this.items[i].show(oDoc);\r\n");
    603             //strCreateDiv.Append(" }\r\n");
    604             //strCreateDiv.Append(" strShow += \"</table>\";\r\n");
    605             //strCreateDiv.Append(" strShow += \"</div>\";\r\n");
    606             //strCreateDiv.Append(" oDoc.write(strShow);\r\n");
    607             //strCreateDiv.Append(" }\r\n");
    608             //strCreateDiv.Append("}\r\n");
    609             //if (!Page.ClientScript.IsClientScriptBlockRegistered(this.GetType(), "CreateMainDiv" + this.UniqueID))
    610             //{
    611             //    Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "CreateMainDiv" + this.UniqueID, strCreateDiv.ToString(), true);
    612             //}
    613
    614             ///<summary>
    615             /// 注册contextMenu方法脚本
    616             ///<summary>
    617            // StringBuilder strChangeStyle = new StringBuilder();strChangeStyle.Append("
    618
    619
    620
    621
    622             ///<summary>
    623             ///添加StartUp脚本
    624             ///<summary>
    625             Control tcDown = this.FindControl(tcDownID);
    626             Control table = this.FindControl(tbID);
    627             StringBuilder strInitScript = new StringBuilder();
    628             strInitScript.Append("<script text/javascript> ");
    629             strInitScript.Append("   var tbClientID" + this.UniqueID + "='" + table.ClientID + "';   makeMenu" + this.UniqueID + "('" + this.UniqueID + "');");
    630             strInitScript.Append("   if( document.all&&window.print ) ");
    631             strInitScript.Append("   { ");
    632             strInitScript.Append("      var objClientId = '" + tcDown.ClientID + "';");
    633             strInitScript.Append("         var obj = document.getElementById(objClientId);");
    634             strInitScript.Append("         document.onclick = hideCurrentMenu;");
    635             strInitScript.Append("   } ");
    636             strInitScript.Append("</script>");
    637
    638             if (!Page.ClientScript.IsStartupScriptRegistered(this.GetType(), "InitScript" + this.UniqueID))
    639             {
    640                 Page.ClientScript.RegisterStartupScript(this.GetType(), "InitScript" + this.UniqueID,
    641                     strInitScript.ToString());
    642             }
    643             base.OnPreRender(e);
    644         }
    645
    646         #endregion
    647     }
    648 }

更多文章 更多内容请看.NET移动与嵌入式技术.NET开发手册ASP.NET教程专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章