GridView At CodeBehind 透過程式碼產生GridView

  • 5434
  • 0
  • 2010-03-31

GridView At CodeBehind 透過程式碼產生GridView

 

GridView GridView1 = new GridView();   

SqlDataSource sqldsBankuai = new SqlDataSource();

 

  protected void Page_Load(object sender, EventArgs e) 
   {

           GridView1.ID = "GridView1"; 
           sqldsBankuai.ConnectionString = "server=.;database=db;trusted_connection=true"; 
           sqldsBankuai.SelectCommand = "select * from Table"; 
           sqldsBankuai.ID = "SqlDataSource1"; 
           sqldsBankuai.DataSourceMode = SqlDataSourceMode.DataSet; 
           this.form1.Controls.Add(sqldsBankuai);

           GridView1.ID = "GridView1"; 
           GridView1.AutoGenerateColumns = false; 
           GridView1.DataSourceID = sqldsBankuai.ID; 
           GridView1.AllowPaging = true; 
           GridView1.PageSize = 3; 
           form1.Controls.Add(GridView1);

           if (!IsPostBack) 
           {

               BoundField bfield1 = new BoundField(); 
               bfield1.HeaderText = "名稱"; 
               bfield1.DataField = "Subject"; 
               GridView1.Columns.Add(bfield1);

           }

 

      TemplateField textF = new TemplateField(); 
      textF.ItemTemplate = new GridViewTextTemplate(DataControlRowType.DataRow, "Subject", "Subject"); 
      GridView1.Columns.Add(textF);

      GridView1.PageIndexChanging += new GridViewPageEventHandler(GridView1_PageIndexChanging);

}

 

 void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
   { 
       //throw new NotImplementedException(); 
       GridView1.PageIndex = e.NewPageIndex; 
       GridView1.DataSourceID = sqldsBankuai.ID; 
       GridView1.DataBind(); 
   }

 

 //Text Box 
public class GridViewTextTemplate : ITemplate 
{

    private DataControlRowType templateType;

    private string columnName;

    private string cId;

    public GridViewTextTemplate(DataControlRowType type, string colname, string controlId) 
    {

        templateType = type;

        columnName = colname;

        cId = controlId;

    }

    public void InstantiateIn(System.Web.UI.Control container) 
    {

        // Create the content for the different row types.

        switch (templateType) 
        {

            case DataControlRowType.Header:

                // Create the controls and set id properties to put in the header 
                Label label1 = new Label(); 
                label1.ID = cId; 
                label1.Text = "<B>" + columnName + "</B>";

                container.Controls.Add(label1);

                break;

            case DataControlRowType.DataRow:

                // Create the controls and set id properties to put in a data row

                TextBox myTextBox = new TextBox();

                myTextBox.ID = cId;

                myTextBox.DataBinding += new EventHandler(this.TextBoxDataBinding);

                container.Controls.Add(myTextBox);

                break;

            default:

                // Insert code to handle unexpected values.

                break;

        }

    }

    private void TextBoxDataBinding(Object sender, EventArgs e) 
    {

        TextBox myTextBox = (TextBox)sender;

        GridViewRow row = (GridViewRow)myTextBox.NamingContainer;

        myTextBox.Text = System.Web.UI.DataBinder.Eval(row.DataItem, columnName).ToString();

    }

}