ASP.NET工程中日历控件的典型应用之一 (转)

本文介绍ASP.NET中日历控件的使用方法,包括动态选择日期、更新数据库等功能,并提供具体实现代码。
ASP.NET工程中日历控件的典型应用之一 (转)[@more@]

很多朋友问我,如何动态选择日期呢,如何选择完日期以后,关闭本页同时把日期传入上一页呢?这个问题也曾经困扰我许久,在ASP中我知道如何做,可是在ASP.NET中却有点迷惑。

为此,我查阅了很多的资料,终于研究通了,现在分享给大家。

源代码如下:calendar.aspx.cs

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.sqlClient;
using System.Drawing;
using System.web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace WebApplication_rd
{
 ///
 /// Summary description for WebForm1.
 ///
 public class calendar : System.Web.UI.Page
 {
 protected System.Web.UI.WebControls.Label Label1;
 protected System.Web.UI.WebControls.DataGrid DataGrid1;
 
 private void Page_Load(object sender, System.EventArgs e)
 {
 if (! Page.IsPostBack)
 BindData();
 }

 private void BindData()
 {
 SqlConnection con = new SqlConnection("server=localhost;database=Northwind;uid=sa;pwd=;");
 SqlCommand cmd = new SqlCommand("select TOP 10 * FROM Orders", con);

 try
 {
 con.Open();
 DataGrid1.Datasource = cmd.ExecuteReader();
 DataGrid1.DataBind();
 con.Close();
 }
 catch (Exception ex)
 {
 Trace.Warn(ex.Message);
 }
 }


 #region Web FoRM Designer generated code
 override protected void OnInit(EventArgs e)
 {
 //
 // CODEGEN: This call is required by the ASP.NET Web Form Designer.
 //
 InitializeComponent();
 base.OnInit(e);
 }
 
 ///
 /// Required method for Designer support - do not modify
 /// the contents of this method with the code editor.
 ///
 private void InitializeComponent()
 { 
 this.DataGrid1.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_CancelItemCommand);
 this.DataGrid1.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_EditItemCommand);
 this.DataGrid1.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_UpdateItemCommand);
 this.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_OnItemDataBound);
 this.Load += new System.EventHandler(this.Page_Load);

 }
 #endregion

 private void DataGrid1_EditItemCommand(object sender, System.Web.UI.WebControls.DataGridCommandEventArgs e)
 {
 DataGrid1.EditItemIndex = e.Item.ItemIndex;
 BindData();
 }

 private void DataGrid1_CancelItemCommand(object sender, System.Web.UI.WebControls.DataGridCommandEventArgs e)
 {
 DataGrid1.EditItemIndex = -1;
 BindData();
 }

 private void DataGrid1_UpdateItemCommand(object sender, System.Web.UI.WebControls.DataGridCommandEventArgs e)
 {
 Int32 iLastCellIndex = e.Item.Cells.Count-1; //The Index for the last cell
 String sNewDate = ((TextBox)e.Item.Cells[iLastCellIndex].FindControl("txtDate")).Text; //Get the value of the TextBox
 Label1.Text = "You set the date " + sNewDate;
 //Add database updating here
 DataGrid1.EditItemIndex = -1;
 BindData();
 }

 private void DataGrid1_OnItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
 {
 if ( e.Item.ItemType == ListItemType.EditItem )
 {
 Int32 iLastCellIndex = e.Item.Cells.Count-1; //The Index for the last cell
 String sTextBoxName = e.Item.Cells[iLastCellIndex].FindControl("txtDate").ClientID; //The rendered name of the TextBox
 String sLink = "Javascript:pickDate('" +
 sTextBoxName +
 "');">iCalendar.gif"; //The HTML to add to the Edit cell
 e.Item.Cells[iLastCellIndex].Controls.Add(new LiteralControl(sLink)); //Add the HTML
 }
 }

 }
}


CalendARPopUp.aspx.cs

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace WebApplication_rd
{
 ///
 /// Summary description for CalendarPopUp.
 ///
 public class CalendarPopUp : System.Web.UI.Page
 {
 protected System.Web.UI.WebControls.LinkButton LinkButton1;
 protected System.Web.UI.WebControls.Calendar Calendar1;
 
 private void Page_Load(object sender, System.EventArgs e)
 {
 // Put user code to initialize the page here
 }

 #region Web Form Designer generated code
 override protected void OnInit(EventArgs e)
 {
 //
 // CODEGEN: This call is required by the ASP.NET Web Form Designer.
 //
 InitializeComponent();
 base.OnInit(e);
 }
 
 ///
 /// Required method for Designer support - do not modify
 /// the contents of this method with the code editor.
 ///
 private void InitializeComponent()
 { 
 this.LinkButton1.Click += new System.EventHandler(this.LinkButton1_Click);
 this.Load += new System.EventHandler(this.Page_Load);

 }
 #endregion

 private void LinkButton1_Click(object sender, System.EventArgs e)
 {
  System.Text.StringBuilder sbScript  = new System.Text.StringBuilder();
 sbScript.Append(""); //Closing script tag

 //Add the script to the page
 this.Page.Controls.Add(new LiteralControl(sbScript.ToString()));
 }
 }
}

 

 


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-998858/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10752043/viewspace-998858/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值