I have following html:
<asp:GridView ID="gvSeminari" runat="server" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None" ShowFooter="True" DataKeyNames="idSeminar" OnRowCancelingEdit="gvSeminari_RowCancelingEdit" OnRowEditing="gvSeminari_RowEditing" OnRowUpdating="gvSeminari_RowUpdating" AllowPaging="True" OnPageIndexChanging="gvSeminari_PageIndexChanging" >
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="btnEdit" runat="server" Text="Uredi" CommandName="Edit" />
</ItemTemplate>
<EditItemTemplate>
<asp:Button ID="btnUpdate1" runat="server" Text="Spremi" CommandName="Update" />
<asp:Button ID="btnCancel1" runat="server" Text="Poništi" CommandName="Cancel" />
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ID Seminara">
<FooterTemplate>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Unesi seminar" />
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="lblID" runat="server" Text='<%#Eval("idSeminar") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Naziv seminara">
<FooterTemplate>
<asp:TextBox ID="txtNaziv" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="lblNaziv" runat="server" Text='<%#Eval("naziv") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtNaziv1" runat="server" Text='<%#Eval("naziv") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Opis seminara">
<FooterTemplate>
<asp:TextBox ID="txtOpis" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="lblOpis" runat="server" Text='<%#Eval("opis") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtOpis1" runat="server" Text='<%#Eval("opis") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Datum seminara">
<FooterTemplate>
<asp:TextBox ID="txtDatum" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="lblDatum" runat="server" Text='<%#Eval("datum") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtDatum1" runat="server" Text='<%#Eval("datum") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="popunjen">
<ItemTemplate>
<asp:CheckBox ID="chkStatus" runat="server" Checked='<%#Eval("status") %>' AutoPostBack="true" OnCheckedChanged="chkStatus_CheckedChanged"/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Broj predbilježbi">
<ItemTemplate>
<asp:Label ID="lblBroj" runat="server" Text='<%#Eval("brojPredbiljezbi") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<EditRowStyle BackColor="#999999" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#E9E7E2" />
<SortedAscendingHeaderStyle BackColor="#506C8C" />
<SortedDescendingCellStyle BackColor="#FFFDF8" />
<SortedDescendingHeaderStyle BackColor="#6F8DAE" />
</asp:GridView>
<br />
<asp:Button ID="Button3" runat="server" OnClick="Button3_Click" Text="Prijava seminara" />
<br />
<br />
<asp:GridView ID="gvPopunjeni" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None">
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<EditRowStyle BackColor="#999999" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#E9E7E2" />
<SortedAscendingHeaderStyle BackColor="#506C8C" />
<SortedDescendingCellStyle BackColor="#FFFDF8" />
<SortedDescendingHeaderStyle BackColor="#6F8DAE" />
</asp:GridView>
</div>
<p>
</p>
</form>
and here is code behind:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
public partial class Admin : System.Web.UI.Page
{
SqlConnection conn = new SqlConnection (ConfigurationManager.ConnectionStrings["connString"].ToString());
SqlCommand cmd;
SqlDataAdapter da;
string query;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
NapuniGridview();
}
}
private void NapuniGridview()
{
try
{
conn.Open();
query = "SELECT * FROM Seminari";
//query = "SELECT C.idSeminar,C.naziv,C.datum, C.opis, C.status, r.[NumberOfRegitsration PerClass] from Seminari C left join ( select idSeminara, count(*) as [NumberOfRegitsration PerClass] from Predbiljezba group by idSeminara) R on c.idSeminar = r.idSeminara";
cmd = new SqlCommand(query, conn);
da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds, "Seminari");
gvSeminari.DataSource = ds;
gvSeminari.DataBind();
conn.Close();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
protected void Button1_Click(object sender, EventArgs e)
{
TextBox naziv = (TextBox)gvSeminari.FooterRow.FindControl("txtNaziv");
TextBox opis = (TextBox)gvSeminari.FooterRow.FindControl("txtOpis");
TextBox datum = (TextBox)gvSeminari.FooterRow.FindControl("txtDatum");
//CheckBox chkUnesi = (CheckBox)gvSeminari.FooterRow.FindControl("chkUnesi");
string connString = ConfigurationManager.ConnectionStrings["connString"].ToString();
SqlConnection conn = new SqlConnection(connString);
int status = 0;
//query = "INSERT INTO Seminari(naziv,opis,datum, status) VALUES ('" + naziv.Text + "','" + opis.Text + "','" + datum.Text + "', '"+ chkUnesi.Checked + "')";
query = "INSERT INTO Seminari(naziv,opis,datum, status) VALUES ('" + naziv.Text + "','" + opis.Text + "','" + datum.Text + "', '" + status + "')";
SqlCommand cmd = new SqlCommand(query, conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
NapuniGridview();
}
protected void chkStatus_CheckedChanged(object sender, EventArgs e)
{
using (conn)
{
query = "UPDATE Seminari SET status=@status WHERE idSeminar=@idSeminar";
cmd = new SqlCommand(query, conn);
conn.Open();
foreach (GridViewRow row in gvSeminari.Rows)
{
int idSeminar = Convert.ToInt32(gvSeminari.DataKeys[row.RowIndex].Values[0]);
bool isSelected = (row.FindControl("chkStatus") as CheckBox).Checked;
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@idSeminar", idSeminar);
cmd.Parameters.AddWithValue("@status", isSelected);
cmd.ExecuteNonQuery();
}
conn.Close();
}
}
protected void gvSeminari_RowEditing(object sender, GridViewEditEventArgs e)
{
gvSeminari.EditIndex = e.NewEditIndex;
NapuniGridview();
}
protected void gvSeminari_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gvSeminari.EditIndex = -1;
NapuniGridview();
}
protected void gvSeminari_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
Label id = (Label)gvSeminari.Rows[e.RowIndex].FindControl("lblID");
TextBox naziv = (TextBox)gvSeminari.Rows[e.RowIndex].FindControl("txtNaziv1");
TextBox opis = (TextBox)gvSeminari.Rows[e.RowIndex].FindControl("txtOpis1");
TextBox datum = (TextBox)gvSeminari.Rows[e.RowIndex].FindControl("txtDatum1");
conn.Open();
SqlCommand cmd = new SqlCommand("UPDATE Seminari SET naziv = '" + naziv.Text + "', datum='" + datum.Text + "', opis = '" + opis.Text + "' where idSeminar=" + Convert.ToInt32(id.Text), conn);
cmd.ExecuteNonQuery();
conn.Close();
gvSeminari.EditIndex = -1;
NapuniGridview();
}
protected void btnSearch_Click(object sender, EventArgs e)
{
query = "SELECT * FROM Seminari WHERE (naziv like '%' + @search + '%' OR opis like '%' + @search + '%' OR datum like '%' + @search + '%' )";
cmd = new SqlCommand(query, conn);
cmd.Parameters.AddWithValue("@search", SqlDbType.VarChar).Value = txtPretrazi.Text;
conn.Open();
da = new SqlDataAdapter();
da.SelectCommand = cmd;
DataSet ds = new DataSet();
da.Fill(ds, "naziv");
gvSeminari.DataSource = ds;
gvSeminari.DataBind();
conn.Close();
}
protected void btnPrikazi_Click(object sender, EventArgs e)
{
/*
DataTable dt = new DataTable();
dt.Columns.Add("idSeminar");
dt.Columns.Add("Naziv");
dt.Columns.Add("Opis");
dt.Columns.Add("Datum");
foreach (GridViewRow row in gvSeminari.Rows)
{
//CheckBox chk = (CheckBox)gvSeminari.FindControl("chkStatus");
if ((row.Cells[0].FindControl("chkStatus") as CheckBox).Checked)
{
DataRow redak = dt.NewRow();
redak["idSeminar"] = row.Cells[0].Text;
redak["Naziv"] = row.Cells[1].Text;
redak["Opis"] = row.Cells[2].Text;
redak["Datum"] = row.Cells[3].Text;
dt.Rows.Add(redak);
}
}
*/
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[3] { new DataColumn("Naziv seminara"), new DataColumn("Opis seminara"), new DataColumn("Datum seminara") });
foreach (GridViewRow row in gvSeminari.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
CheckBox chkRow = (row.Cells[0].FindControl("chkStatus") as CheckBox);
if (chkRow.Checked)
{
string naziv = (row.Cells[1].FindControl("lblNaziv") as Label).Text;
string opis = (row.Cells[2].FindControl("lblOpis") as Label).Text;
string datum = (row.Cells[2].FindControl("lblDatum") as Label).Text;
dt.Rows.Add(naziv, opis, datum);
}
}
}
gvPopunjeni.Visible = true;
gvPopunjeni.DataSource = dt;
gvPopunjeni.DataBind();
}
protected void Button2_Click(object sender, EventArgs e)
{
gvPopunjeni.Visible = false;
NapuniGridview();
}
protected void gvSeminari_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gvSeminari.PageIndex = e.NewPageIndex;
NapuniGridview();
gvSeminari.DataBind();
}
protected void Button3_Click(object sender, EventArgs e)
{
Response.Redirect("PrijavaTreca.aspx");
}
protected void Button4_Click(object sender, EventArgs e)
{
Response.Redirect("Predibiljezba.aspx");
}
}
Can you please help me with this. I would like to do this using Entity framework, but i got stuck with checkbox in gridview. I fill this values from database (true or false), and you can change it in gridview. How can i do it using entity framework.
Any help would be appreciated.
Aucun commentaire:
Enregistrer un commentaire