2016-06-11 3 views
0

Ich habe eine gridview, die so aussieht, wobei ich mehrere Zeilen habe: Name, Kontakt #, Firmenname usw. und ich habe ein Kontrollkästchen enthalten, so dass ich wählen kann, welche Zeile zu genehmigen oder nicht.Genehmigen Sie nur die Zeile, die von asp gridview überprüft wird

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
    CssClass="table table-hover table-striped" EnableViewState="False" 
    onselectedindexchanged="GridView1_SelectedIndexChanged"> 
    <Columns> 
    <asp:TemplateField> 
     <ItemTemplate> 
      <asp:CheckBox ID="chkRow" runat="server" /> 
     </ItemTemplate> 
    </asp:TemplateField> 

      <asp:BoundField DataField="Username" HeaderText="Username" 
      SortExpression="Username" /> 

     <asp:BoundField DataField="LastName" HeaderText="LastName" 
      SortExpression="LastName" /> 

     <asp:BoundField DataField="FirstName" HeaderText="FirstName" 
      SortExpression="FirstName" /> 

     <asp:BoundField DataField="CompanyName" HeaderText="CompanyName" 
      SortExpression="CompanyName" /> 

     <asp:BoundField DataField="EmailAddress" HeaderText="EmailAddress" 
      SortExpression="EmailAddress" /> 

     <asp:BoundField DataField="CompanyAddress" HeaderText="CompanyAddress" 
      SortExpression="CompanyAddress" /> 

     <asp:BoundField DataField="IncomeRange" HeaderText="IncomeRange" 
      SortExpression="IncomeRange" /> 

     <asp:BoundField DataField="CreditRequest" HeaderText="CreditRequest" 
      SortExpression="CreditRequest" /> 

     <asp:BoundField DataField="ContactNumber" HeaderText="ContactNumber" SortExpression="ContactNumber" /> 

     <%--<asp:TemplateField> 
       <ItemTemplate>--%> 


       <%--</ItemTemplate> 
      </asp:TemplateField>--%> 

      <asp:CheckBoxField /> 
      <asp:CheckBoxField /> 

    </Columns> 

</asp:GridView> 
<asp:Button ID="Button1" runat="server" Text="Approve" onclick="Button1_Click" /> 

was ich passieren soll, ist, wenn ich auf die Schaltfläche genehmigen klicken, die einzige Zeile, die den Code-behind wird ausführen überprüft wird. hinter

hier mein Code:

protected void Button1_Click(object sender, EventArgs e) 
    { 
     using (SqlConnection scn = new SqlConnection("Data Source = 'PAULO'; Initial Catalog=ShoppingCartDB;Integrated Security =True")) 
     { 
      scn.Open(); 
      SqlCommand cmd = new SqlCommand(@"UPDATE UserData SET CreditRequest = CAST(REPLACE(c.CreditRequest, ',', '') as int) FROM CreditRequests c INNER JOIN Userdata u on c.username=u.username Where [email protected]", scn); 
      cmd.Parameters.Add("@Username", SqlDbType.NVarChar).Value = DSession["New"]; 

      cmd.ExecuteNonQuery(); 
     } 
    } 

UPDATE (Ich habe versucht, es hat keine Fehler, aber die Genehmigen Funktion erfüllt nicht)

protected void Approve(string Username) 
    { 
     using (SqlConnection scn = new SqlConnection("Data Source = 'PAULO'; Initial Catalog=ShoppingCartDB;Integrated Security =True")) 
     { 
      scn.Open(); 
      SqlCommand cmd = new SqlCommand(@"UPDATE UserData SET CreditRequest = CAST(REPLACE(c.CreditRequest, ',', '') as int) FROM CreditRequests c INNER JOIN Userdata u on c.username=u.username Where [email protected]", scn); 
      cmd.Parameters.Add("@Username", SqlDbType.NVarChar).Value = Session["New"]; 

      cmd.ExecuteNonQuery(); 
     } 
    } 

    protected void Button1_Click(object sender, EventArgs e) 
    { 
     foreach (GridViewRow grow in GridView1.Rows) 
     { 
      //Searching CheckBox("chkDel") in an individual row of Grid 
      CheckBox chkdel = (CheckBox)grow.FindControl("chkDel"); 
      //If CheckBox is checked than delete the record with particular empid 
      if (chkdel.Checked) 
      { 
       string Username = grow.Cells[1].Text; 
       Approve(Username); 
      } 
     } 
     //Displaying the Data in GridView 
     bindgrid(); 
    } 

Antwort

0

DataKeyNames="ur Primary column" In Gridview HTML hinzufügen. Und in Code hinter nur alle Zeilen in GridView wie unten durchlaufen.

//Loop through all the rows in gridview 
foreach (GridViewRow grv in grdEmp.Rows) 
{ 
//Finiding checkbox control in gridview for particular row 
CheckBox chk = (CheckBox)grv.FindControl("chkDel"); 

if (chk.Checked) 
{ 
//get EmpId from DatakeyNames from gridview 
int empid = Convert.ToInt32(grdEmp.DataKeys[grv.RowIndex].Value); 

cmd = new SqlCommand("Update_Sp", con); //Put ur Inline query here 
cmd.Parameters.Add("@Username", SqlDbType.Int).Value = Username; //use as per ur requirments 
cmd.CommandType = CommandType.StoredProcedure; 
cmd.ExecuteNonQuery(); 
} 
} 
grdEmp.EditIndex = -1; 
BindEmpGrid(); 
+0

Bitte aktualisiere Sir –

+0

@ReineViray sehen laden: versuchen, 'String Benutzername ersetzen = wachsen. Cells [1] .Text; 'mit' string Benutzername = GridView1.Rows [e.RowIndex] .Values ​​["Benutzername"]. ToString(); ' –

0

Verwendung dieser Code:

foreach (GridViewRow row in GridView1.Rows) 
{ 
if (row.RowType == DataControlRowType.DataRow) 
    { 
    System.Web.UI.WebControls.CheckBox chkrow = (row.Cells[0].FindControl("chkrow") as System.Web.UI.WebControls.CheckBox); 
    if (chkrow.Checked) 
    { 
     string Username = dgvshow.Rows[row.RowIndex].Cells[1].Text.ToString() 
     Approve(Username); 

    } 
    } 
} 

und auch !ispostback in Laden der Seite verwenden, wo Sie Ihre Raster

Verwandte Themen