Torna al Thread

using System; using System.Data; using System.ComponentModel; using System.Web.UI; using System.Web.UI.WebControls; namespace MitApp.WebTest { [ToolboxData("<{0}:TestGrid runat=server></{0}:TestGrid>")] public partial class TestGrid : System.Web.UI.UserControl { // ********************************************************************* // *** Dichiarazione Eventi // ********************************************************************* /// <summary>Aggiunge un record al gridview</summary> [Browsable(true)] public event EventHandler<ImageClickEventArgs> RowAdding; [Browsable(true)] public event EventHandler<GridViewCancelEditEventArgs> RowCancelingEdit; [Browsable(true)] public event EventHandler<GridViewDeleteEventArgs> RowDeleting; [Browsable(true)] public event EventHandler<GridViewEditEventArgs> RowEditing; [Browsable(true)] public event EventHandler<GridViewPageEventArgs> PageIndexChanging; [Browsable(true)] public event EventHandler<GridViewUpdateEventArgs> RowUpdating; // ********************************************************************* // *** Proprietà // ********************************************************************* [Browsable(true)] [DefaultValue(false)] public bool AllowPaging { get { return Grid.AllowPaging; } set { Grid.AllowPaging = value; } } public object DataSource { get { return Grid.DataSource; } set { if (Grid != null) Grid.DataSource = value; } } public int EditIndex { get { return Grid.EditIndex; } set { Grid.EditIndex = value; } } public GridViewRow FooterRow { get { return Grid.FooterRow; } } /// <summary>Ritorna l'istanza dell'oggetto GridView</summary> public GridView Grid { get { return gridView; } } public int PageCount { get { return Grid.PageCount; } } public int PageIndex { get { return Grid.PageIndex; } set { Grid.PageIndex = value; } } /// <summary>Indica se visualizzare il pulsante di aggiunta record</summary> [Browsable(true)] [DefaultValue(true)] public bool ShowInsertButton { get; set; } // ********************************************************************* // *** Indicizzatori // ********************************************************************* /// <summary>Ritorna la riga i-esima del GridView</summary> /// <param name="i">Indice della riga</param> /// <returns>GridViewRow</returns> public GridViewRow this[int i] { get { return (Grid != null) ? Grid.Rows[i] : null; } } // ********************************************************************* // *** Eventi Page // ********************************************************************* protected void Page_Load(object sender, EventArgs e) { if (Grid != null) { Grid.RowCancelingEdit += new GridViewCancelEditEventHandler(OnRowCancelingEdit); Grid.RowDeleting += new GridViewDeleteEventHandler(OnRowDeleting); Grid.RowEditing += new GridViewEditEventHandler(OnRowEditing); Grid.PageIndexChanging += new GridViewPageEventHandler(OnPageIndexChanging); Grid.RowUpdating += new GridViewUpdateEventHandler(OnRowUpdating); } } // ********************************************************************* // *** Eventi // ********************************************************************* protected void OnRowAdding(object sender, ImageClickEventArgs e) { if (RowAdding != null) RowAdding(this, e); } protected void OnRowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { if (RowCancelingEdit != null) RowCancelingEdit(this, e); } protected void OnRowDeleting(object sender, GridViewDeleteEventArgs e) { if (RowDeleting != null) RowDeleting(this, e); } protected void OnRowEditing(object sender, GridViewEditEventArgs e) { if (RowEditing != null) RowEditing(this, e); } protected void OnPageIndexChanging(object sender, GridViewPageEventArgs e) { if (PageIndexChanging != null) PageIndexChanging(this, e); } protected void OnRowUpdating(object sender, GridViewUpdateEventArgs e) { if (RowUpdating != null) RowUpdating(this, e); } protected void gridView_RowCreated(object sender, GridViewRowEventArgs e) { if ((e.Row.RowType == DataControlRowType.Footer) && (ShowInsertButton)) { ImageButton ImageBtnAdd = new ImageButton(); ImageBtnAdd.ID = "ImageBtnAdd"; ImageBtnAdd.ImageUrl = "~/Images/Document/Insert.gif"; ImageBtnAdd.OnClientClick = "return confirm('Sei sicuro di voler aggiungere il record?')"; manager.RegisterAsyncPostBackControl(ImageBtnAdd); e.Row.Cells[0].Controls.Add(ImageBtnAdd); ImageBtnAdd.Click += new ImageClickEventHandler(OnRowAdding); ScriptManager.GetCurrent(this.Page).RegisterAsyncPostBackControl(ImageBtnAdd); } } protected void gridView_RowDataBound(object sender, GridViewRowEventArgs e) { if ((e.Row.RowType == DataControlRowType.Footer) && (ShowInsertButton)) { DataTable rs = DataSource as DataTable; if (rs != null) { for (int i = 0; i < rs.Columns.Count; i++) { DataColumn dc = rs.Columns[i]; TextBox txt = new TextBox(); txt.ID = "txt" + dc.ColumnName; txt.Width = new Unit(100, UnitType.Percentage); txt.ReadOnly = dc.AutoIncrement; e.Row.Cells[i + 2].Controls.Add(txt); } } } } // ********************************************************************* // *** Metodi // ********************************************************************* new public void DataBind() { if (Grid != null) Grid.DataBind(); } } } <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="TestGrid.ascx.cs" Inherits="MitApp.WebTest.TestGrid" %> <%@ Register Src="~/UI/GridViewPager.ascx" TagName="GridViewPager" TagPrefix="asp" %> <asp:ScriptManager runat="server" id="manager" /> <asp:UpdatePanel ID="updateGrid" runat="server"> <ContentTemplate> <asp:GridView ID="gridView" runat="server" Width="100%" ShowFooter="True" BackColor="White" BorderColor="#3366CC" BorderStyle="None" BorderWidth="1px" CellPadding="4" onrowcreated="gridView_RowCreated" onrowdatabound="gridView_RowDataBound"> <AlternatingRowStyle BackColor="#C2D69B" /> <FooterStyle BackColor="#99CCCC" ForeColor="#003399" /> <HeaderStyle BackColor="#003399" Font-Bold="True" ForeColor="#CCCCFF" /> <PagerSettings Mode="NumericFirstLast" /> <PagerStyle BackColor="#99CCCC" ForeColor="#003399" HorizontalAlign="center" Font-Size="Larger" /> <RowStyle BackColor="White" ForeColor="#003399" /> <SelectedRowStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" /> <SortedAscendingCellStyle BackColor="#EDF6F6" /> <SortedAscendingHeaderStyle BackColor="#0D4AC4" /> <SortedDescendingCellStyle BackColor="#D6DFDF" /> <SortedDescendingHeaderStyle BackColor="#002876" /> <Columns> <asp:CommandField ButtonType="Image" ShowEditButton="True" CancelImageUrl="~/Images/Cursor/Cancel.gif" DeleteImageUrl="~/Images/Strumenti/Delete.gif" EditImageUrl="~/Images/Document/Edit.gif" UpdateImageUrl="~/Images/Cursor/Update.gif" /> <asp:CommandField ButtonType="Image" ShowDeleteButton="True" DeleteImageUrl="~/Images/Strumenti/Delete.gif" /> </Columns> <PagerTemplate> <asp:GridViewPager ID="pager" runat="Server" /> </PagerTemplate> </asp:GridView> </ContentTemplate> </asp:UpdatePanel>
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5