2016-05-24 17 views
0

Dies ist mein Code iam versucht, die Daten in Gridview anzuzeigen, die in den Eingabetextfeldern eingegeben wird, nachdem die Schaltfläche zum Senden gedrückt wurde.Hinzufügen von Daten zu gridview

Es gibt keine Fehler, aber die Daten nicht in die Tabelle es zeigt nur den leeren Tisch

public partial class Default : System.Web.UI.Page 
{ 
    DataRow dr; 
    DataTable dt = new DataTable(); 

    protected void Page_Load(object sender, EventArgs e) 
    { 

     if (!IsPostBack) 
      DataBind(); 
    } 

    protected void Button1_Click(object sender, EventArgs e) 
    { 
     dt.Columns.Add(new DataColumn("ID", typeof(int))); 
     dt.Columns.Add(new DataColumn("Name", typeof(string))); 
     dt.Columns.Add(new DataColumn("Salary", typeof(int))); 
     dt.Columns.Add(new DataColumn("Department", typeof(string))); 

     dr = dt.NewRow(); 
     dr["ID"] = txtID.Text; 
     dr["Name"] = txtName.Text; 
     dr["Salary"] = txtSalary.Text; 
     dr["Department"] = txtDepartment.Text; 
     dt.Rows.Add(dr); 

     GridView1.DataSource = dt; 
     GridView1.DataBind(); 
+0

Bitte helfen Sie mir mit diesem – ramesh

+1

Stellen Sie sicher, die Sie ausgewählt haben ** AutoGenerateColumns ** -Eigenschaft auf True – CodeIt

+0

können Sie kurz über Databind in Pageload-Ereignis – SK2185

Antwort

1

Denken Sie daran, Web staatenlos ist, was bedeutet, dass jedes Mal, wenn Sie eine Zeile in die gridview hinzufügen möchten Sie brauchen um die aktuellen Daten irgendwo zu speichern. Das Beispiel unten verwendet ViewState. Es gibt natürlich viele Möglichkeiten, neben ViewState wie Session, localStorage im Browser und Datenbankspeicher zu speichern, um nur einige zu nennen.

-Code hinter:

protected void Page_Load(object sender, EventArgs e) 
    { 
    } 

    private void DataBind() 
    { 
     DataTable table = ViewState["Data"] as DataTable; 
     GridView1.DataSource = table; 
     GridView1.DataBind(); 
    } 

    protected void Button1_Click(object sender, EventArgs e) 
    { 
     DataRow dr = null; 
     DataTable dt = ViewState["Data"] as DataTable; 

     if (dt == null) 
     { 
      dt = new DataTable(); 
      dt.Columns.Add(new DataColumn("ID", typeof(int))); 
      dt.Columns.Add(new DataColumn("Name", typeof(string))); 
      dt.Columns.Add(new DataColumn("Salary", typeof(int))); 
      dt.Columns.Add(new DataColumn("Department", typeof(string))); 
     } 

     dr = dt.NewRow(); 
     dr["ID"] = txtID.Text; 
     dr["Name"] = txtName.Text; 
     dr["Salary"] = txtSalary.Text; 
     dr["Department"] = txtDepartment.Text; 

     dt.Rows.Add(dr); 

     ViewState["Data"] = dt; 

     DataBind(); 
    } 

.ASPX:

<body> 
    <form id="form1" runat="server"> 
     <table> 
      <tr> 
       <td>ID</td> 
       <td><asp:TextBox ID="txtID" runat="server"></asp:TextBox></td> 
      </tr> 
      <tr> 
       <td>Name</td> 
       <td><asp:TextBox ID="txtName" runat="server"></asp:TextBox></td> 
      </tr> 
      <tr> 
       <td>Salary</td> 
       <td><asp:TextBox ID="txtSalary" runat="server"></asp:TextBox></td> 
      </tr> 
      <tr> 
       <td>Department</td> 
       <td><asp:TextBox ID="txtDepartment" runat="server"></asp:TextBox></td> 
       <td><asp:Button ID="Button1" runat="server" Text="Add to grid" OnClick="Button1_Click" /></td> 
      </tr> 
     </table> 
     <asp:GridView ID="GridView1" runat="server"></asp:GridView> 
    </form> 
</body> 

Ausgang: Adding data to gridview

+0

Arbeitete. Vielen Dank Denis Wassel. – ramesh

+0

Bitte markieren Sie meine Antwort als akzeptiert, wenn es Ihnen geholfen hat –

+0

Denis, Wenn ich die Txt-Boxen leer, nachdem ich Hit Add to Grid? – ramesh

Verwandte Themen