Click here to Skip to main content
15,893,564 members
Articles / Web Development / IIS

Transfer arguments between modal page and invoker page in asp.net 1.1

Rate me:
Please Sign up or sign in to vote.
3.47/5 (6 votes)
19 Aug 20053 min read 52.1K   568   29  
Transfer arguments between dialog page and invoker page in asp.net 1.1
/*
 * My msn is: rouser_91@hotmail.com pleasur to discuss with you any question about programming.
 *Any question and recommend feedback to wangran@baosight-hy.com please.
 *Best regards!
 */

namespace Test
{
	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;

	public class list : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.Button Button1;
		protected System.Web.UI.WebControls.Button Button2;
		protected System.Web.UI.WebControls.ImageButton ImageButton1;
		protected System.Web.UI.WebControls.ImageButton ImageButton2;
		protected System.Web.UI.WebControls.ImageButton ImageButton3;
		protected System.Web.UI.WebControls.ImageButton ImageButton4;
		protected System.Web.UI.WebControls.TextBox TextBox1;
		protected System.Web.UI.WebControls.Label Label2;
		protected System.Web.UI.WebControls.ImageButton ImageButton5;
		protected System.Web.UI.WebControls.LinkButton LinkButton1;
		protected System.Web.UI.WebControls.DataGrid grd;

		#region Bind Data
		private void BindData()
		{
			//modify the connection string below
			string strConn = "Server=(local);Database=Northwind;Uid=sa;Pwd=xxx";
			string strComm = "Select OrderID,CustomerID,EmployeeID FROM Orders ORDER BY OrderID " + ViewState["ORDERBY"].ToString();
			System.Data.SqlClient.SqlDataAdapter da =
				new System.Data.SqlClient.SqlDataAdapter(strComm,strConn);
			DataTable dt = new DataTable();
			da.Fill(dt);

			grd.DataSource = dt;
			grd.DataBind();

			Label2.Text = " of "+grd.PageCount.ToString()+" pages";
			TextBox1.Text = (grd.CurrentPageIndex+1).ToString();
		}
		#endregion

		#region Web Designer Generated Code
		override protected void OnInit(EventArgs e)
		{
			InitializeComponent();
			base.OnInit(e);
		}
		
		private void InitializeComponent()
		{    
			this.grd.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.grd_PageIndexChanged);
			this.Button1.Click += new System.EventHandler(this.Button1_Click);
			this.Button2.Click += new System.EventHandler(this.Button2_Click);
			this.ImageButton4.Click += new System.Web.UI.ImageClickEventHandler(this.ImageButton4_Click);
			this.ImageButton3.Click += new System.Web.UI.ImageClickEventHandler(this.ImageButton3_Click);
			this.ImageButton1.Click += new System.Web.UI.ImageClickEventHandler(this.ImageButton1_Click);
			this.ImageButton2.Click += new System.Web.UI.ImageClickEventHandler(this.ImageButton2_Click);
			this.ImageButton5.Click += new System.Web.UI.ImageClickEventHandler(this.ImageButton5_Click);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion

		#region events for CheckBox
		public void CheckAll_Checked(object sender,System.EventArgs e)
		{
			CheckBox chk = (CheckBox)(sender);
			foreach(DataGridItem item in grd.Items)
			{
				CheckBox chkItem = (CheckBox)(item.FindControl("CheckItem"));
				chkItem.Checked = chk.Checked;
				CheckItem_Checked(chkItem,e);
			}
		}

		public void CheckItem_Checked(object sender,System.EventArgs e)
		{
			CheckBox chk = (CheckBox)(sender);
			DataGridItem item = (DataGridItem)(chk.Parent.Parent);
			item.BackColor = chk.Checked ? grd.SelectedItemStyle.BackColor : grd.ItemStyle.BackColor;
			item.ForeColor = chk.Checked ? grd.SelectedItemStyle.ForeColor : grd.ItemStyle.ForeColor;
		}
		#endregion

		#region Paging events
		private void grd_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
		{
			grd.CurrentPageIndex = e.NewPageIndex;
			BindData();
		}

		private void Button1_Click(object sender, System.EventArgs e)
		{
			string strOrderIds = "";
			foreach(DataGridItem item in grd.Items)
			{
				CheckBox chkItem = (CheckBox)(item.FindControl("CheckItem"));
				if(chkItem.Checked)
					strOrderIds += item.Cells[1].Text + ",";
			}
			if(strOrderIds.Trim() != "")
				strOrderIds = strOrderIds.Substring(0,strOrderIds.Length - 1);
			string strScript = "<script defer> window.returnValue='"+strOrderIds+"'; window.close(); </script>";
			Response.Write(strScript);
		}

		private void ImageButton1_Click(object sender, System.Web.UI.ImageClickEventArgs e)
		{
			grd.CurrentPageIndex = 0;
			BindData();
		}

		private void ImageButton2_Click(object sender, System.Web.UI.ImageClickEventArgs e)
		{
			if(grd.CurrentPageIndex>0)
				grd.CurrentPageIndex --;
			BindData();
		}

		private void ImageButton3_Click(object sender, System.Web.UI.ImageClickEventArgs e)
		{
			if(grd.CurrentPageIndex<grd.PageCount-1)
				grd.CurrentPageIndex ++;
			BindData();
		}

		private void ImageButton4_Click(object sender, System.Web.UI.ImageClickEventArgs e)
		{
			grd.CurrentPageIndex = grd.PageCount-1;
			BindData();
		}

		private void ImageButton5_Click(object sender, System.Web.UI.ImageClickEventArgs e)
		{
			try
			{
				int pageIndex = int.Parse(TextBox1.Text)-1;
				grd.CurrentPageIndex = pageIndex;
				BindData();
			}
			catch(Exception ex)
			{
				//Text is an invalid number
			}
		}
		#endregion

		#region other events

		private void Page_Load(object sender, System.EventArgs e)
		{
			if(!IsPostBack)
			{
				string strScript = "<script defer> if(window.dialogArguments!=null) __doPostBack('',window.dialogArguments); </script>";
				if(!this.IsClientScriptBlockRegistered("GetArgumentScript"))
					this.RegisterStartupScript("GetArgumentScript",strScript);
			}
			else
			{
				if(ViewState["ORDERBY"] == null)
				{
					ViewState["ORDERBY"] = Request["__EVENTARGUMENT"];
					BindData();
				}
			}
		}
		
		private void Button2_Click(object sender, System.EventArgs e)
		{
			Response.Write("<script defer> window.close(); </script>");
		}
		#endregion
	}
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

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.

A list of licenses authors might use can be found here


Written By
Web Developer
China China
When I encounter a problem, I am charmed.
When I make it out, I am cordial.

Enjoy your coding !

Comments and Discussions