日历用户控件

namespace TempWeb
{
 using System;
 using System.Web.UI;
 using System.ComponentModel;
 using System.Collections;

 public class DateControl : System.Web.UI.WebControls.WebControl, System.Web.UI.INamingContainer, System.Web.UI.IPostBackEventHandler
 {
  private static readonly object ClickKey = new object();

  [Description("单击日期触发的事件!")]
  public event EventHandler Click
  {
   add
   {
    Events.AddHandler(ClickKey, value);
   }
   remove
   {
    Events.RemoveHandler(ClickKey, value);
   }
  }

  private static readonly string[] header = new string[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };

  private DateTime startDate;

  /// <summary>
  /// Gets or sets the show date.
  /// </summary>
  /// <value>The show date.</value>
  [Description("格式必须为yyyy-MM一样")]
  public string StartDate
  {
   get
   {
    if (startDate.ToShortDateString() == null)
     startDate = Convert.ToDateTime(System.DateTime.Now.Year + "-" + System.DateTime.Now.Month + "-01");
    return startDate.ToString("yyyy-MM");
   }
   set
   {
    if (value == null)
    {
     startDate = Convert.ToDateTime(System.DateTime.Now.Year + "-" + System.DateTime.Now.Month + "-01");
    }
    else
    {
     startDate = Convert.ToDateTime(value + "-01");
    }
   }
  }

  private DateTime endDate;
  [Description("格式必须为yyyy-MM一样")]
  public string EndDate
  {
   get
   {
    if (endDate.ToShortDateString() == null)
     endDate = Convert.ToDateTime(System.DateTime.Now.Year + "-" + System.DateTime.Now.Month + "-01");
    return endDate.ToString("yyyy-MM");
   }
   set
   {
    if (value == null)
    {
     endDate = Convert.ToDateTime(System.DateTime.Now.Year + "-" + System.DateTime.Now.Month + "-01");
    }
    else
    {
     endDate = Convert.ToDateTime(value + "-01");
    }
   }
  }

  [Description("预定的日期")]
  [BrowsableAttribute(false)]
  public string SelectedDate
  {
   get
   {
    if (Page.Request.Form[this.UniqueID + "hid"] != null)
    {
     return Page.Request.Form[this.UniqueID + "hid"].ToString();
    }
    else
    {
     return string.Empty;
    }
   }
  }

  private string initDate;
  [Description("字符串形式的数据源")]
  public string InitDate
  {
   set
   {
    initDate = value;
   }
   get
   {
    return initDate;
   }
  }

  protected override void OnPreRender(EventArgs e)
  {
   base.OnPreRender(e);

   #region 嵌入css和javascript
//   string str = "<link href=/"" + Page.ResolveUrl("~/page.css") + "/" type=/"text/css/" rel=/"stylesheet/" />"   //间接引用css
   string str="<style type=/"text/css/" rel=/"stylesheet/">"  //直接嵌入css
    +".borderAll {BORDER-RIGHT: #009a00 1px solid; BORDER-TOP: #009a00 1px solid; BORDER-LEFT: #009a00 1px solid; BORDER-BOTTOM: #009a00 1px solid }"
    +".borderBottom { cursor:hand;BORDER-BOTTOM: #009a00 1px solid; }.borderRightBottom {BORDER-RIGHT: #009a00 1px solid; BORDER-BOTTOM: #009a00 1px solid;cursor:hand; }.styleCannot { cursor:hand; }.styleCan { cursor:hand;BACKGROUND-COLOR: #99ffff; }"
    +"</style>"
//    + "<script type=/"text/javascript/" src=/"" + Page.ResolveUrl("~/Fun_JScript.js") + "/"></script>" //间接引用javascript
    +"<script type=/"text/javascript/">"  //直接引用javascript
    +"function isDate(strDate){var strSeparator = /"-/";var strDateArray;var intYear;var intMonth;var intDay;var boolLeapYear;strDateArray = strDate.split(strSeparator);if(strDateArray.length!=3) return false;intYear = parseInt(strDateArray[0],10);intMonth = parseInt(strDateArray[1],10);intDay = parseInt(strDateArray[2],10);"
    +"if(isNaN(intYear)||isNaN(intMonth)||isNaN(intDay)) return false;if(intMonth>12||intMonth<1) return false;if((intMonth==1||intMonth==3||intMonth==5||intMonth==7||intMonth==8||intMonth==10||intMonth==12)&&(intDay>31||intDay<1)) return false;"
    +"if((intMonth==4||intMonth==6||intMonth==9||intMonth==11)&&(intDay>30||intDay<1)) return false;if(intMonth==2){if(intDay<1) return false;boolLeapYear = false;if((intYear%100)==0){if((intYear%400)==0) boolLeapYear = true;}else{if((intYear%4)==0) boolLeapYear = true;}if(boolLeapYear){if(intDay>29) return false;}else{if(intDay>28) return false;}}return true;}"
    +"function better_time(strDateStart,strDateEnd){var strSeparator = /"-/";var strDateArrayStart;var strDateArrayEnd;var intDay;strDateArrayStart = strDateStart.split(strSeparator);strDateArrayEnd = strDateEnd.split(strSeparator);var strDateS = new Date(strDateArrayStart[0] + /"//" + strDateArrayStart[1] + /"//" + strDateArrayStart[2]);"
    +"var strDateE = new Date(strDateArrayEnd[0] + /"//" + strDateArrayEnd[1] + /"//" + strDateArrayEnd[2]);intDay = (strDateS-strDateE)/(1000*3600*24);return intDay;}"
    +"</script>"
    +"<script type=/"text/javascript/" >"
    +"var AdSeatListArray = null;var oldFocusCell = null;var focusCell = null;"
    +"function document.onselectstart(){return false;}function Add(id,value){Remove(id,value);document.getElementById('datacontrolhid').value=value+';'+document.getElementById('datacontrolhid').value;}"
    +"function Remove(id,value){document.getElementById('datacontrolhid').value=document.getElementById('datacontrolhid').value.replace(value+';','');}"
    +"function showState(){var operateType = parseInt(document.forms[0].selectOperateType.value);var frequency = parseInt(document.forms[0].selectFrequency.value);for(var i=0;i<MonthCount;i++){setTable(i,operateType,frequency);}}"
    +"function setTable(index,type,frequency){var table =document.getElementById(/"TableAdSeatState_/"+index);var rowLength = table.rows.length;var colLength = table.rows(1).cells.length;var today = new Date();var today = today.getFullYear() + /"-/" + (today.getMonth()+1) + /"-/" + today.getDate();for(var row=2;row<rowLength;row++){for(var col = 0; col< colLength; col++){var day = table.rows(row).cells(col).getAttribute(/"day/");"
    +"var Occupancy = table.rows(row).cells(col).getAttribute(/"Occupancy/");if((Occupancy==null)||(better_time(today,day)>0))table.rows(row).cells(col).className = /"/";else{Occupancy = parseInt(Occupancy);if(type==1){Occupancy += parseInt(table.rows(row).cells(col).getAttribute(/"Largess/"));}if(Occupancy + frequency > 100){table.rows(row).cells(col).className = /"styleCannot/";}else{table.rows(row).cells(col).className = /"styleCan/";}}}}}"
    +"function selectedList(){AdSeatListArray = new Array();var operateType = parseInt(document.forms[0].selectOperateType.value);var frequency = parseInt(document.forms[0].selectFrequency.value);"
    +"for(var i=0;i<MonthCount;i++){createResultByIndex(i,operateType,frequency);}if(AdSeatListArray.length == 0){if(window.confirm(/"您还没有选中要预定的日期,继续吗?/"))window.parent.submitAdProject(AdSeatListArray);}else{window.parent.submitAdProject(AdSeatListArray);}}"
    +"function createResultByIndex(index,type,frequency){var table =document.getElementById(/"TableAdSeatState_/"+index);var rowLength = table.rows.length;var colLength = table.rows(1).cells.length;for(var row=2;row<rowLength;row++){for(var col = 0; col< colLength; col++)"  
    +"{var td = table.rows(row).cells(col);if(td.className == /"styleCan/"){if(td.style.backgroundColor == /"#00008b/"){var day = td.getAttribute(/"day/");if(AdSeatListArray.length == 0){var adSeatObject = new Object();adSeatObject.adSeatID = currentAdSeatID;adSeatObject.adSeatName = currentAdSeatName;adSeatObject.opType = type;adSeatObject.beginDate = day;adSeatObject.endDate = day;"
    +"adSeatObject.frequency = frequency;AdSeatListArray[0] = adSeatObject;}else{var adSeatObject = AdSeatListArray[AdSeatListArray.length - 1];if(better_time(day,adSeatObject.endDate)==1)"
    +"{adSeatObject.endDate = day;}else{var adSeatObject = new Object();adSeatObject.adSeatID = currentAdSeatID;adSeatObject.adSeatName = currentAdSeatName;adSeatObject.opType = type;adSeatObject.beginDate = day;adSeatObject.endDate = day;adSeatObject.frequency = frequency;AdSeatListArray[AdSeatListArray.length] = adSeatObject;}}}}}}}"
    +"function header_onclick(){var element = event.srcElement;var table = element.parentNode.parentNode.parentNode;var rowLength = table.rows.length;var colLength = table.rows(1).cells.length;"
    +"for(var row=2;row<rowLength;row++){for(var col = 0; col< colLength; col++){var td = table.rows(row).cells(col);if(td.className == /"styleCan/"){if(table.selected){Add('',td.day);td.style.backgroundColor = /"#00008b/";td.style.color = /"white/";}else{Remove('',td.day);td.style.backgroundColor = /"/";td.style.color = /"/";}}}}table.selected = !table.selected;for(var i=0;i<7;i++){ table.rows(1).cells(i).selected = table.selected;}}"
    +"function week_onclick(){var element = event.srcElement;var table = element.parentNode.parentNode.parentNode;var index = element.cellIndex;var rowLength = table.rows.length;for(var row=2;row<rowLength;row++){"
    +"var td = table.rows(row).cells(index);if(td.className == /"styleCan/"){if(element.selected){Add('',td.day);td.style.backgroundColor = /"#00008b/";td.style.color = /"white/";}else{Remove('',td.day);td.style.backgroundColor = /"/";td.style.color = /"/";}}}element.selected = !element.selected;}"
    +"function day_onclick(){selectedCells(1);}function day_oncontextmenu(){selectedCells(2);window.event.cancelBubble = true;window.event.returnValue = false;}"
    +"function selectedCells(buttonIndex){var element = event.srcElement;if(element.tagName == /"FONT/"){element = element.parentNode;}if(event.shiftKey){if(element==focusCell){if(buttonIndex == 1)setCellSelected(element,true);else setCellSelected(element,false);}else{oldFocusCell = focusCell;restoreOldFocusCell();"
    +"if(buttonIndex == 1)setSelectedCells(oldFocusCell,element,true);else setSelectedCells(oldFocusCell,element,false);}}else{restoreOldFocusCell();if(buttonIndex == 1) setCellSelectedAuto(element);else setCellSelected(element,false);}focusCell = element;}"
    +"function restoreOldFocusCell(){var element = event.srcElement;if((focusCell != null)&&(focusCell != element)){focusCell.style.borderRight = /"silver 1px solid/";focusCell.style.borderTop = /"silver 1px solid/";focusCell.style.borderLeft = /"silver 1px solid/";focusCell.style.borderBottom = /"silver 1px solid/";}focusCell = element;}"
    +"function setSelectedCells(oldCell,newCell,selected){var strSeparator = /"_/";var table1 = oldCell.parentNode.parentNode.parentNode;var table2 = newCell.parentNode.parentNode.parentNode;var index1 = parseInt(table1.id.split(strSeparator)[1]);var index2 = parseInt(table2.id.split(strSeparator)[1]);"
    +"if(index1==index2){var rowIndex1 = oldCell.parentNode.rowIndex;var rowIndex2 = newCell.parentNode.rowIndex;if(rowIndex1==rowIndex2){if(oldCell.cellIndex<newCell.cellIndex)setCellSelectedBetween(oldCell,newCell,selected);else setCellSelectedBetween(newCell,oldCell,selected);}else if(rowIndex1<rowIndex2)"
    +"{setCellSelectedBetween(oldCell,newCell,selected);}else{setCellSelectedBetween(newCell,oldCell,selected);}}else{var first = null;var second = null;var firstTable = null;var secondTable = null;var firstCell = null;var secondTable = null;if(index1<index2){first = index1;second = index2;"
    +"firstTable = table1;secondTable = table2;firstCell = oldCell;secondCell = newCell;}else{first = index2;second = index1;firstTable = table2;secondTable = table1;firstCell = newCell;secondCell = oldCell;}var rowLength = firstTable.rows.length;var colLength = firstTable.rows(1).cells.length;"
    +"setCellSelectedBetween(firstCell,firstTable.rows(rowLength-1).cells(colLength-1),selected);for(var i=first+1;i<second;i++){setTableSelected(i,selected);}rowLength = secondCell.parentNode.rowIndex;colLength = secondCell.cellIndex;setCellSelectedBetween(secondTable.rows(2).cells(0),secondCell,selected);}}"
    +"function setCellSelectedBetween(cell1,cell2,selected){var table = cell1.parentNode.parentNode.parentNode;var rowIndex1 = cell1.parentNode.rowIndex;var rowIndex2 = cell2.parentNode.rowIndex;var cellIndex1 = cell1.cellIndex;var cellIndex2 = cell2.cellIndex;var row = rowIndex1;var col = cellIndex1;"
    +"do{setCellSelected(table.rows(row).cells(col),selected);if(col==6){col = 0;row++;}else col++;}while((row!=rowIndex2)||(col!=cellIndex2))setCellSelected(table.rows(row).cells(col),selected)}"
    +"function setTableSelected(index,selected){var table = eval(/"window.document.all.TableAdSeatState_/"  + index);var rowLength = table.rows.length;var colLength = table.rows(1).cells.length;for(var row=2;row<rowLength;row++){for(var col = 0; col< colLength; col++)"
    +"{var td = table.rows(row).cells(col);setCellSelected(td,selected)}}table.selected = true;for(var i=0;i<7;i++){table.rows(1).cells(i).selected = table.selected;}}"
    +"function setCellSelected(td,cellSelected){if(td.className == /"styleCan/"){if(cellSelected){Add('',td.day);td.style.backgroundColor = /"#00008b/";td.style.color = /"white/";}else{Remove('',td.day);td.style.backgroundColor = /"/";td.style.color = /"/";}}}"
    +"function setCellSelectedAuto(td){if(td.className == /"styleCan/"){if(td.style.backgroundColor == /"#00008b/"){Remove('',td.day);td.style.backgroundColor =/"/";td.style.color = /"/";}else{Add('',td.day);td.style.backgroundColor = /"#00008b/";td.style.color = /"white/";}}}"
    +"</script>";
//    + "<script type=/"text/javascript/"  src=/"" + Page.ResolveUrl("~/page.js") + "/"></script>"; //间接引用javascript
   #endregion

   //Page.Header.Controls.Add(new LiteralControl(str));
   if (!Page.IsClientScriptBlockRegistered("tdate"))
   {
    Page.RegisterClientScriptBlock("tdate", str);
   }
  }

/// <summary>
  /// 生成日期的下拉控件(开始时间和结束时间)
  /// </summary>
  /// <param name="writer"></param>
  /// <param name="dateName">日期名称</param>
  /// <param name="idNum">名称编码</param>
  private void CreateSEDate(HtmlTextWriter writer,string dateName,string idNum)
  {
   writer.Write("<a>"+dateName+":</a><select id=/"sYear"+idNum+"/">");
   for(int i=2000;i<2050;i++)
   {
    if(i==System.DateTime.Now.Year)
    {
     writer.Write("<option id=op"+i.ToString()+" value='"+i.ToString()+"' selected>"+i.ToString()+"</option>");
    }
    writer.Write("<option id=op"+i.ToString()+" value='"+i.ToString()+"'>"+i.ToString()+"</option>");
   }   
   writer.Write("</select>年<select id=/"sMonth"+idNum+"/">");

   for(int i=1;i<13;i++)
   {
    if(i==System.DateTime.Now.Month)
    {
     writer.Write("<option id=op"+i.ToString()+" value='"+i.ToString()+"' selected>"+i.ToString()+"</option>");
    }
    writer.Write("<option id=op"+i.ToString()+" value='"+i.ToString()+"'>"+i.ToString()+"</option>");
   }
   writer.Write("</select>月");   
  }

  protected override void Render(HtmlTextWriter writer)
  {
   int j = 0; //用于月份的累加,即从startDate一直加到endDate
   DateTime tempDate = new DateTime(); //表示从startDate到endDate之间月份的临时变量
   writer.Write("<input type='hidden' name='datacontrolhid' id='" + this.UniqueID + "hid'/>");//隐藏域,用于存放客户选中的日期

//创建两个时间下拉框
   this.CreateSEDate(writer,"开始时间","1");
   writer.Write("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
   this.CreateSEDate(writer,"结束时间","2");

   writer.RenderBeginTag(HtmlTextWriterTag.Table);
   writer.RenderBeginTag(HtmlTextWriterTag.Tr);
   do //为每个月画出一张表格
   {
    writer.RenderBeginTag(HtmlTextWriterTag.Td);

    //为table标签定义属性和样式,注意:是先写出属性,再给出标签
    writer.AddAttribute(HtmlTextWriterAttribute.Width, "380px");
    writer.AddAttribute(HtmlTextWriterAttribute.Border, "1px");
    writer.AddAttribute(HtmlTextWriterAttribute.Cellpadding, "0");
    writer.AddAttribute(HtmlTextWriterAttribute.Cellspacing, "0");
    writer.AddAttribute(HtmlTextWriterAttribute.Bordercolor, "#cccc99");

    tempDate = startDate.AddMonths(j);

    //给出标签
    writer.Write("<table id=/"TableAdSeatState_"+j.ToString()+"/" month=/"" + tempDate.ToString("yyyy-MM") + "/" selected=/"false/" cellspacing=/"0/" cellpadding=/"2/" bordercolor=/"silver/" border=/"1/" class=/"borderAll/" width=/"100%/">");
              
    writer.RenderBeginTag(HtmlTextWriterTag.Tr);
    writer.Write("<td colspan=/"7/" align=/"middle/" class=/"borderBottom/"  οnclick=/"header_onclick()/">");    //结束标记
    writer.Write(tempDate.Year + "年" + tempDate.Month + "月");  //计算当月的年月

    writer.Write("</td>");

    writer.RenderEndTag();
    writer.RenderBeginTag(HtmlTextWriterTag.Tr);

    //画出星期几
    for (int i = 0; i < DateControl.header.Length; i++)
    {
//     writer.RenderBeginTag(HtmlTextWriterTag.Td);
//     writer.Write(DateControl.header[i]);
//     writer.RenderEndTag();
     writer.Write("<td selected=/"false/" align=/"middle/" bgcolor=/"#99cc33/" class=/"borderRightBottom/" οnclick=/"week_onclick()/">");
     writer.Write(DateControl.header[i]);
     writer.Write("</td>");
    }
    writer.RenderEndTag();

    DateTime end = tempDate.AddMonths(1);
    int days = ((TimeSpan)end.Subtract(tempDate)).Days;    //计算当月的天数
    int spaceday = Convert.ToInt32(tempDate.DayOfWeek);    //计算当天是周几并转换成数字
    writer.AddAttribute(HtmlTextWriterAttribute.Align, "center");
    writer.RenderBeginTag(HtmlTextWriterTag.Tr);

    //以下循环是用于把1号之前的日期用“&nbsp;”即空格填充
    for (int i = 0; i < spaceday; i++)
    {
     writer.RenderBeginTag(HtmlTextWriterTag.Td);
     writer.WriteLine("&nbsp;");
     writer.RenderEndTag();
    }

    int t=0;
    //以下循环用于填充日期,并能把周末用红色标记出来,且伴随着事件的响应即颜色的变化。
    for (int i = 1; i <= days; i++)
    {
     //定义一个变量存放当月的第一天
     string tddate = tempDate.ToString("yyyy-MM") + "-" + i.ToString().PadLeft(2, '0');

     //     writer.Write(Page.GetPostBackEventReference(this,this.StartDate+"-"+i.ToString().PadLeft(2,'0')));
     writer.Write("<td align=/"middle/" Occupancy=/"0/" Prearrange=/"0/" Largess=/"0/" title=/"/" οnclick=/"day_onclick()/" οncοntextmenu=/"day_oncontextmenu()/" day=/""+tddate+"/" ");

     //存放颜色参数
     string colour=string.Empty;
     //存放类名
     string classname=string.Empty;

     //如果系统时间之后背景颜色默认为可预定,即绿色,否则为白色,不可预定
     if(Convert.ToDateTime(tddate)>System.DateTime.Now)
     {
      colour="#99ffff";
      classname="styleCan";
     }
     else
     {
      colour="white";
      classname="styleCannot";
     }

     //if语句是根据用户提供的数据源来对日历进行颜色的初始化
     //过期无背景颜色(White)(sign:W),已经被预定显示红色背景(sign:R),可以预定显示绿色(sign:G),被选中的显示蓝色(#6495ed)(sign:B)
     if (this.InitDate == ""||this.InitDate==null)
     {
      writer.Write("");
     }
     else
     {
      this.InitDate = this.InitDate.TrimEnd(';');
      string[] dateStrs = null;
      dateStrs = this.SplitPage(this.InitDate, ";");
      for (int l = 0; l < dateStrs.Length; l++)
      {
       //如果当天已经被预定,则背景呈现红色
       switch (dateStrs[l].Substring(dateStrs[l].Length - 1))
       {
        case "R":
         if (dateStrs[l].TrimEnd('R') == tddate)
         {
          colour="#ffc0cb";
          classname="styleCannot";
         }
         break;
        case "G":
         if (dateStrs[l].TrimEnd('G') == tddate)
         {
          colour="#99ffff";
          classname="styleCan";
         }
         break;
        default:
         break;
       }
      }
     }

     writer.Write(" style=/"background-color:"+colour+"/" class=/""+classname+"/" ");

     //周末的字体显示红色
     if (tempDate.AddDays(i - 1).DayOfWeek == System.DayOfWeek.Saturday || tempDate.AddDays(i - 1).DayOfWeek == System.DayOfWeek.Sunday)
     {
      writer.Write("><font color='red'>" + i.ToString() + "</font></td>");
     }
     else
     {
      writer.Write(">" + i.ToString() + "</td>");
     }

     //每到7天换行
     if ((i + spaceday) % 7 == 0)
     {
      writer.RenderEndTag();

      //处理月末是周六的情况
      if((i+spaceday)/7!=5)
      {
       writer.AddAttribute(HtmlTextWriterAttribute.Align, "center");
       writer.RenderBeginTag(HtmlTextWriterTag.Tr);
      }
     }

     //下文备用
     t=i;
    }

    //每个月的表格有5行和6行之分
    if ((spaceday + days) % 7 != 0)
    {
     int allcount = spaceday + days > 35 ? 42 : 35;
     for (int i = 0; i < allcount - spaceday - days; i++)
     {
      writer.RenderBeginTag(HtmlTextWriterTag.Td);
      writer.Write("&nbsp;");
      writer.RenderEndTag();
     }
     writer.RenderEndTag();
     writer.Write("</table>");
    }
    else
    {
     if((t+spaceday)/7!=5)
     {
      writer.RenderEndTag();
     }
     writer.Write("</table>");
    }
    j++;
    writer.RenderEndTag();
   }
   while (tempDate < endDate);
   writer.RenderEndTag();
   writer.RenderEndTag();
  }

  /// <summary>
  /// 把一个字符串以一个分隔符分开
  /// </summary>
  /// <param name="source">需分割的字符串</param>
  /// <param name="split">分割符</param>
  /// <returns>字符数组</returns>
  private string[] SplitPage(string source, string split)
  {
   int len = split.Length;
   ArrayList al = new ArrayList();
   int start = 0; //开始位置
   int j = -1; //匹配索引位置
   while (true)
   {
    j = source.IndexOf(split, start);
    if (j > -1)
    {
     al.Add(source.Substring(start, j - start));
     int s = j - start;
     start = j + len;
    }
    else
    {
     al.Add(source.Substring(start));
     break;
    }
   }
   string[] result;
   if (al.Count == 0)
   {
    string[] r = new string[1];
    r[0] = source;
    result = r;
   }
   else
   {
    string[] r = new string[al.Count];
    for (int i = 0; i < al.Count; i++)
    {
     r[i] = al[i].ToString();
    }
    result = r;
   }
   return result;
  }


  //定义onclick事件处理程序
  protected virtual void OnClick(StringEventArgs e)
  {
   EventHandler clickEventDelegate = (EventHandler)Events[ClickKey];
   if (clickEventDelegate != null)
   {
    clickEventDelegate(this, e);
   }
  }

  #region IPostBackEventHandler 成员
  public void RaisePostBackEvent(string eventArgument)
  {
   //throw new Exception("The method or operation is not implemented.");
   OnClick(new StringEventArgs(eventArgument));
  }
  #endregion
 }

 public class StringEventArgs : EventArgs
 {
  private string argString;

  public string ArgString
  {
   get { return argString; }
  }

  public StringEventArgs(string arg)
  {
   this.argString = arg;
  }

  public override string ToString()
  {
   return this.argString;
  }
 }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值