Hello!
I'm having some problems with RadGrid control. I added couple of controls (mostly TextBoxes and DropDownLists) so I could filter the RadGrid records. Filtering works fine, but whenever I try to Edit or Delete the row RadGrid picks the wrong record and I'm clueless about what to do to fix it.
Here is the .aspx part of the page:
Here is the .aspx.cs part of the page:
I apologize for the size of code posted but I think it could be useful to understand my problem better.
Thank you!
Regards,
Hrvoje
I'm having some problems with RadGrid control. I added couple of controls (mostly TextBoxes and DropDownLists) so I could filter the RadGrid records. Filtering works fine, but whenever I try to Edit or Delete the row RadGrid picks the wrong record and I'm clueless about what to do to fix it.
Here is the .aspx part of the page:
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> </telerik:RadScriptManager> <asp:UpdatePanel ID="UpdatePanel2" runat="server"> <ContentTemplate> <div class="fieldset"> <fieldset> <legend>Tvrtka</legend> <telerik:RadComboBox ID="rcbTvrtka" runat="server" AppendDataBoundItems="true" Skin="Hay"> </telerik:RadComboBox> </fieldset> </div> <div class="fieldset"> <fieldset> <legend>Tip usera</legend> <telerik:RadComboBox ID="rcbTipUsera" runat="server" AppendDataBoundItems="true" Skin="Hay"> </telerik:RadComboBox> </fieldset> </div> <div class="fieldset3"> <fieldset> <legend>Aktivan</legend> <asp:CheckBox ID="chkAktivan" runat="server" /> </fieldset> </div> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="btnReset" EventName="Click" /> </Triggers> </asp:UpdatePanel> <div class="fieldset3"> <fieldset> <legend>Pretraga</legend> <asp:Button ID="btnSearch" runat="server" Text="Traži" OnClick="btnSearch_Click" /> </fieldset> </div> <div class="fieldset3"> <fieldset> <legend>Reset</legend> <asp:Button ID="btnReset" runat="server" Text="Resetiraj" OnClick="btnReset_Click" /> </fieldset> </div> <telerik:RadGrid ID="gvKontakti" runat="server" AllowPaging="True" AllowSorting="True" PageSize="25" AutoGenerateColumns="False" CellSpacing="0" GridLines="None" OnNeedDataSource="gvKontakti_NeedDataSource" AllowFilteringByColumn="False" Skin="Hay" OnItemDataBound="gvKontakti_ItemDataBound" OnPreRender="gvKontakti_PreRender" OnUpdateCommand="gvKontakti_UpdateCommand" OnDetailTableDataBind="gvKontakti_DetailTableDataBind" OnInsertCommand="gvKontakti_InsertCommand" OnItemCommand="gvKontakti_ItemCommand"> <MasterTableView DataKeyNames="idKontakt" CommandItemDisplay="Top" InsertItemPageIndexAction="ShowItemOnCurrentPage" TableLayout="Fixed" Caption="Kontakti"> <DetailTables> <telerik:GridTableView Name="Assets" Width="100%" CommandItemDisplay="None" Caption="Asseti"> <ParentTableRelation> <telerik:GridRelationFields DetailKeyField="idKontakt" MasterKeyField="idKontakt" /> </ParentTableRelation> <CommandItemSettings AddNewRecordText="Dodaj novi item" ShowAddNewRecordButton="true" /> <Columns> <telerik:GridBoundColumn UniqueName="Naziv" DataField="NazivAsseta" HeaderText="Naziv" HeaderStyle-Width="200px"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="DatumGarancije" HeaderText="Datum garancije" DataField="DatumGarancije" DataFormatString="{0:dd.MM.yyyy.}" HeaderStyle-Width="100px"> </telerik:GridBoundColumn> </Columns> <EditFormSettings UserControlName="UserControls/TicketAssetUserControl.ascx" EditFormType="WebUserControl"> <EditColumn UniqueName="EditCommandColumnItem1"> </EditColumn> </EditFormSettings> </telerik:GridTableView> </DetailTables> <DetailTables> <telerik:GridTableView DataKeyNames="idTicket" Name="Tickets" CommandItemDisplay="None" Caption="Incidenti"> <Columns> <telerik:GridBoundColumn UniqueName="TicketNumber" HeaderText="Broj incidenta" DataField="TicketNumber" HeaderStyle-Width="70px"> </telerik:GridBoundColumn> <telerik:GridDateTimeColumn DataField="DatumPrijave" HeaderText="Datum prijave" UniqueName="DatumPrijave" PickerType="DatePicker" DataFormatString="{0:dd.MM.yyyy.}" HeaderStyle-Width="80px"> </telerik:GridDateTimeColumn> <telerik:GridTemplateColumn UniqueName="Opis" HeaderText="Opis" DataField="Opis" HeaderStyle-Width="400px"> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Opis") %>'> </asp:Label> <telerik:RadToolTip ID="RadToolTip1" runat="server" TargetControlID="Label1" Width="150px" RelativeTo="Element" Position="MiddleRight" EnableShadow="false"> <%# DataBinder.Eval(Container, "DataItem.Biljeske") %> </telerik:RadToolTip> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn UniqueName="Status" HeaderText="Status" DataField="Status" HeaderStyle-Width="80px"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="Prioritet" HeaderText="Prioritet" DataField="Prioritet" HeaderStyle-Width="70px"> </telerik:GridBoundColumn> <telerik:GridDateTimeColumn DataField="DatumDo" HeaderText="Deadline" UniqueName="Deadline" PickerType="DatePicker" DataFormatString="{0:dd.MM.yyyy.}" HeaderStyle-Width="80px"> </telerik:GridDateTimeColumn> <telerik:GridBoundColumn UniqueName="Tip" HeaderText="Tip" DataField="Tip" HeaderStyle-Width="80px"> </telerik:GridBoundColumn> <telerik:GridCheckBoxColumn UniqueName="Naplacen" HeaderText="Naplaćen" DataField="IzdanRacun" HeaderStyle-Width="65px"> </telerik:GridCheckBoxColumn> <telerik:GridCheckBoxColumn UniqueName="Zatvoren" HeaderText="Zatvoren" DataField="Zatvoren" HeaderStyle-Width="60px"> </telerik:GridCheckBoxColumn> <telerik:GridBoundColumn UniqueName="DailySum" HeaderText="Efektivno vrijeme" DataField="DailySum" HeaderStyle-Width="70px"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="DailyCount" HeaderText="Broj dolazaka" DataField="DailyCount" HeaderStyle-Width="70px"> </telerik:GridBoundColumn> </Columns> </telerik:GridTableView> </DetailTables> <CommandItemSettings ShowAddNewRecordButton="true" AddNewRecordText="Dodaj novi kontakt" /> <RowIndicatorColumn FilterControlAltText="Filter RowIndicator column"> </RowIndicatorColumn> <ExpandCollapseColumn Visible="True" FilterControlAltText="Filter ExpandColumn column"> </ExpandCollapseColumn> <Columns> <telerik:GridEditCommandColumn UniqueName="EditCommandColumn" EditText="Detalji" HeaderStyle-Width="50px"> </telerik:GridEditCommandColumn> <telerik:GridBoundColumn UniqueName="Kontakt" DataField="Naziv" HeaderText="Kontakt" HeaderStyle-Width="150px"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="Tvrtka" HeaderText="Tvrtka" DataField="Tvrtka" HeaderStyle-Width="150px"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="Funkcija" HeaderText="Funkcija" DataField="Funkcija" HeaderStyle-Width="150px"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="Tel1" HeaderText="Telefon 1" DataField="Tel1" HeaderStyle-Width="100px"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="Tel2" HeaderText="Telefon 2" DataField="Tel2" HeaderStyle-Width="100px"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="Mob1" HeaderText="Mobitel 1" DataField="Mob1" HeaderStyle-Width="100px"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="Mob2" HeaderText="Mobitel 2" DataField="Mob2" HeaderStyle-Width="100px"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="Email1" HeaderText="E-mail 1" DataField="Email1" HeaderStyle-Width="100px"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="Adresa1" HeaderText="Adresa 1" DataField="Adresa1" HeaderStyle-Width="150px"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="Grad" HeaderText="Grad" DataField="Grad" HeaderStyle-Width="100px"> </telerik:GridBoundColumn> <telerik:GridCheckBoxColumn UniqueName="Aktivan" HeaderText="Aktivan" DataField="Aktivan" HeaderStyle-Width="80px"> </telerik:GridCheckBoxColumn> <telerik:GridButtonColumn UniqueName="DeleteColumn" Text="Delete" CommandName="Delete" ConfirmDialogType="RadWindow" ConfirmText="Brisanjem kontakta brišu se i svi asseti!" HeaderStyle-Width="50px"> </telerik:GridButtonColumn> </Columns> <EditFormSettings UserControlName="UserControls/KontaktUserControl.ascx" EditFormType="WebUserControl"> <EditColumn UniqueName="EditCommandColumn1"> </EditColumn> </EditFormSettings> </MasterTableView> <FilterMenu EnableImageSprites="False"> </FilterMenu> <HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Hay"> </HeaderContextMenu> </telerik:RadGrid></asp:Content>Here is the .aspx.cs part of the page:
TSEntities db = new TSEntities();protected void Page_Load(object sender, EventArgs e){ int idAuthenticatedUser = Convert.ToInt32(Session["authenticatedUI"]); Kontakt kontakt = new Kontakt(); kontakt = db.Kontakt.SingleOrDefault(k => k.idKontakt == idAuthenticatedUser); if (Session["authenticatedUI"] == null) { Response.Redirect("Login.aspx"); } else if (kontakt.idOvlasti == 3 || kontakt.idOvlasti == 4) { if (Request.RawUrl != "/KontaktiWebForm.aspx?idk=" + idAuthenticatedUser) { Response.Redirect("KontaktiWebForm.aspx?idk=" + idAuthenticatedUser); } } if (!IsPostBack) { Populate(); chkAktivan.Checked = true; }}protected void Populate(){ var tvrtkaList = (from t in db.Firma select t).ToList(); var tvrtka = from t in tvrtkaList orderby t.Naziv select new { t.idFirma, t.Naziv }; rcbTvrtka.Items.Clear(); rcbTvrtka.Items.Add(new RadComboBoxItem("Odaberi tvrtku", "0")); rcbTvrtka.DataSource = tvrtka; rcbTvrtka.DataTextField = "Naziv"; rcbTvrtka.DataValueField = "idFirma"; rcbTvrtka.DataBind(); var userType = from u in db.Ovlasti select new { u.idOvlasti, u.Naziv }; rcbTipUsera.Items.Add(new RadComboBoxItem("Odaberi tip", "0")); rcbTipUsera.DataSource = userType; rcbTipUsera.DataTextField = "Naziv"; rcbTipUsera.DataValueField = "idOvlasti"; rcbTipUsera.DataBind();}protected void gvKontakti_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e){ int idKontakt = Convert.ToInt32(Request.QueryString["idk"]); int idAuthKontakt = Convert.ToInt32(Session["authenticatedUI"]); if (idKontakt > 0 && idAuthKontakt == idKontakt) { gvKontakti.DataSource = from k in db.Kontakt where k.idKontakt == idKontakt && k.Aktivan == true orderby k.Prezime, k.Ime select new { Tvrtka = k.Firma.Naziv, k.idKontakt, Naziv = k.Ime + " " + k.Prezime, Funkcija = k.Funkcija, k.Ime, k.Prezime, k.Tel1, k.Tel2, k.Mob1, k.Mob2, k.Email1, k.Email2, k.Fax, k.Adresa1, k.Adresa2, k.Adresa3, k.Grad, k.PostanskiBroj, k.Drzava, k.Biljeske, k.Aktivan, k.Username, k.Password }; } else if (idKontakt > 0 && idAuthKontakt != idKontakt) { gvKontakti.DataSource = from k in db.Kontakt where k.idKontakt == idKontakt && k.Aktivan == true orderby k.Prezime, k.Ime select new { Tvrtka = k.Firma.Naziv, k.idKontakt, Naziv = k.Ime + " " + k.Prezime, Funkcija = k.Funkcija, k.Ime, k.Prezime, k.Tel1, k.Tel2, k.Mob1, k.Mob2, k.Email1, k.Email2, k.Fax, k.Adresa1, k.Adresa2, k.Adresa3, k.Grad, k.PostanskiBroj, k.Drzava, k.Biljeske, k.Aktivan, k.Username, k.Password }; } else { gvKontakti.DataSource = from k in db.Kontakt where k.Aktivan == true orderby k.Prezime, k.Ime select new { Tvrtka = k.Firma.Naziv, k.idKontakt, Naziv = k.Ime + " " + k.Prezime, Funkcija = k.Funkcija, k.Ime, k.Prezime, k.Tel1, k.Tel2, k.Mob1, k.Mob2, k.Email1, k.Email2, k.Fax, k.Adresa1, k.Adresa2, k.Adresa3, k.Grad, k.PostanskiBroj, k.Drzava, k.Biljeske, k.Aktivan, k.Username, k.Password }; }}protected void gvKontakti_ItemDataBound(object sender, GridItemEventArgs e){ int idKontakt = Convert.ToInt32(Request.QueryString["idk"]); int idAuthKontakt = Convert.ToInt32(Session["authenticatedUI"]); if ((e.Item is GridEditFormItem) && e.Item.IsInEditMode) { UserControl userControl = (UserControl)e.Item.FindControl(GridEditFormItem.EditFormUserControlID); GridEditFormItem editFormItem = (GridEditFormItem)e.Item; Button btnUpdate = (Button)userControl.FindControl("btnUpdate"); TextBox txtUsername = (TextBox)userControl.FindControl("txtUsername"); TextBox txtPassword = (TextBox)userControl.FindControl("txtPassword"); RadComboBox rcbTvrtka = (RadComboBox)userControl.FindControl("rcbTvrtka"); RadComboBox rcbOvlasti = (RadComboBox)userControl.FindControl("rcbOvlasti"); Kontakt authKontakt = new Kontakt(); authKontakt = db.Kontakt.SingleOrDefault(k => k.idKontakt == idAuthKontakt); var tvrtkeList = (from t in db.Firma orderby t.Naziv select t).ToList(); rcbTvrtka.DataSource = from t in tvrtkeList select new { t.idFirma, t.Naziv }; rcbTvrtka.DataTextField = "Naziv"; rcbTvrtka.DataValueField = "idFirma"; rcbTvrtka.Text = "'<%# DataBinder.Eval(Container, 'DataItem.idFirma') %>'"; rcbTvrtka.DataBind(); rcbOvlasti.DataSource = from o in db.Ovlasti select o; rcbOvlasti.DataTextField = "Naziv"; rcbOvlasti.DataValueField = "idOvlasti"; rcbOvlasti.Text = "'<%# DataBinder.Eval(Container, 'DataItem.idOvlasti') %>'"; rcbOvlasti.DataBind(); rcbOvlasti.Items.FindItemByValue("4").Selected = true; if (authKontakt.idOvlasti == 4 || authKontakt.idOvlasti == 3 || authKontakt.idOvlasti == 2) { rcbOvlasti.Enabled = false; } if (authKontakt.idOvlasti == 4 || authKontakt.idOvlasti == 3) { rcbTvrtka.Enabled = false; } txtUsername.ReadOnly = false; txtPassword.ReadOnly = false; if (!e.Item.OwnerTableView.IsItemInserted) { Kontakt kontakt = new Kontakt(); int idKontaktSelected = Convert.ToInt32(editFormItem.GetDataKeyValue("idKontakt")); kontakt = db.Kontakt.SingleOrDefault(k => k.idKontakt == idKontaktSelected); if (idKontaktSelected == idAuthKontakt || authKontakt.idOvlasti == 2 || authKontakt.idOvlasti == 1) { txtUsername.ReadOnly = false; txtPassword.ReadOnly = false; btnUpdate.Visible = true; } else { txtUsername.ReadOnly = true; txtPassword.ReadOnly = true; btnUpdate.Visible = false; } int idTvrtka = Convert.ToInt16(kontakt.idFirma); rcbTvrtka.Items.FindItemByValue(idTvrtka.ToString()).Selected = true; Session["rcbTvrtka"] = idTvrtka; rcbOvlasti.Items.FindItemByValue(kontakt.idOvlasti.ToString()).Selected = true; CheckBox chkAktivan = (CheckBox)userControl.FindControl("chkAktivan"); if (kontakt.Aktivan == true) { chkAktivan.Checked = true; } else { chkAktivan.Checked = false; } } }}protected void gvKontakti_PreRender(object sender, EventArgs e){ int idKontakt = Convert.ToInt32(Request.QueryString["idk"]); if (!this.IsPostBack && idKontakt > 0) { this.gvKontakti.MasterTableView.Items[0].Edit = true; this.gvKontakti.MasterTableView.Rebind(); }}protected void gvKontakti_UpdateCommand(object sender, GridCommandEventArgs e){ GridEditableItem editedItem = e.Item as GridEditableItem; UserControl userControl = (UserControl)e.Item.FindControl(GridEditFormItem.EditFormUserControlID); RadComboBox rcbOvlasti = (RadComboBox)userControl.FindControl("rcbOvlasti"); RadComboBox rcbTvrtka = (RadComboBox)userControl.FindControl("rcbTvrtka"); int idKontakt = Convert.ToInt32(editedItem.GetDataKeyValue("idKontakt")); Kontakt kontakt = new Kontakt(); kontakt = db.Kontakt.SingleOrDefault(k => k.idKontakt == idKontakt); int idFirma = Convert.ToInt32(rcbTvrtka.SelectedItem.Value); kontakt.idFirma = Convert.ToInt32(rcbTvrtka.SelectedItem.Value); kontakt.Ime = (userControl.FindControl("txtIme") as TextBox).Text; kontakt.Prezime = (userControl.FindControl("txtPrezime") as TextBox).Text; kontakt.Adresa1 = (userControl.FindControl("txtAdresa1") as TextBox).Text; kontakt.Adresa2 = (userControl.FindControl("txtAdresa2") as TextBox).Text; kontakt.Adresa3 = (userControl.FindControl("txtAdresa3") as TextBox).Text; kontakt.Biljeske = (userControl.FindControl("txtBiljeske") as TextBox).Text; kontakt.Funkcija = (userControl.FindControl("txtFunkcija") as TextBox).Text; kontakt.Prezime = (userControl.FindControl("txtPrezime") as TextBox).Text; kontakt.Grad = (userControl.FindControl("txtGrad") as TextBox).Text; kontakt.Drzava = (userControl.FindControl("txtDrzava") as TextBox).Text; kontakt.PostanskiBroj = (userControl.FindControl("txtPBR") as TextBox).Text; kontakt.Mob1 = (userControl.FindControl("txtMob1") as TextBox).Text; kontakt.Mob2 = (userControl.FindControl("txtMob2") as TextBox).Text; kontakt.Tel1 = (userControl.FindControl("txtTel1") as TextBox).Text; kontakt.Tel2 = (userControl.FindControl("txtTel2") as TextBox).Text; kontakt.Fax = (userControl.FindControl("txtFax") as TextBox).Text; kontakt.Email1 = (userControl.FindControl("txtEmail1") as TextBox).Text; kontakt.Email2 = (userControl.FindControl("txtEmail2") as TextBox).Text; kontakt.Aktivan = (userControl.FindControl("chkAktivan") as CheckBox).Checked; kontakt.idOvlasti = Convert.ToInt32(rcbOvlasti.SelectedItem.Value); kontakt.Username = (userControl.FindControl("txtUsername") as TextBox).Text; string password = (userControl.FindControl("txtPassword") as TextBox).Text; string passwordHash = FormsAuthentication.HashPasswordForStoringInConfigFile(password, "MD5"); if (password.Length > 0) { kontakt.Password = passwordHash; } db.SaveChanges();}protected void gvKontakti_DetailTableDataBind(object sender, GridDetailTableDataBindEventArgs e){ GridDataItem dataItem = (GridDataItem)e.DetailTableView.ParentItem; int idKontakt = Convert.ToInt16(dataItem.GetDataKeyValue("idKontakt")); switch (e.DetailTableView.Name) { case "Assets": { e.DetailTableView.DataSource = from a in db.Asset where a.idKontakt == idKontakt && a.Aktivan == true select new {a.idKontakt, NazivAsseta = a.Naziv, a.DatumGarancije }; } break; case "Tickets": { var ticketList = (from t in db.Ticket where t.idKontakt == idKontakt && t.Zatvoren == false select t).ToList(); e.DetailTableView.DataSource = from t in ticketList where t.Zatvoren == false orderby t.idTicket, t.RedniBroj, t.DatumPrijave select new { t.idTicket, t.idFirma, t.idKontakt, t.idManager, t.idNadredeniTicket, TicketNumber = t.idNadredeniTicket + "-" + t.RedniBroj, t.Biljeske, t.DatumDo, t.DatumPrijave, t.OpciPrioritet, t.Opis, t.OpisZatvoren, t.Prioritet, t.Status, t.Tip, t.VrstaPrijave, t.Zatvoren, NazivKontakta = t.Kontakt == null ? "Bez kontakta" : t.Kontakt.Ime + " " + t.Kontakt.Prezime }; } break; }}protected void gvKontakti_InsertCommand(object sender, GridCommandEventArgs e){ GridEditableItem editedItem = e.Item as GridEditableItem; UserControl userControl = (UserControl)e.Item.FindControl(GridEditFormItem.EditFormUserControlID); TSEntities db = new TSEntities(); Kontakt kontakt = new Kontakt(); RadComboBox rcbTvrtka = (RadComboBox)userControl.FindControl("rcbTvrtka"); RadComboBox rcbOvlasti = (RadComboBox)userControl.FindControl("rcbOvlasti"); kontakt.idFirma = Convert.ToInt32(rcbTvrtka.SelectedItem.Value); kontakt.Ime = (userControl.FindControl("txtIme") as TextBox).Text; kontakt.Prezime = (userControl.FindControl("txtPrezime") as TextBox).Text; kontakt.Adresa1 = (userControl.FindControl("txtAdresa1") as TextBox).Text; kontakt.Adresa2 = (userControl.FindControl("txtAdresa2") as TextBox).Text; kontakt.Adresa3 = (userControl.FindControl("txtAdresa3") as TextBox).Text; kontakt.Biljeske = (userControl.FindControl("txtBiljeske") as TextBox).Text; kontakt.Funkcija = (userControl.FindControl("txtFunkcija") as TextBox).Text; kontakt.Prezime = (userControl.FindControl("txtPrezime") as TextBox).Text; kontakt.Grad = (userControl.FindControl("txtGrad") as TextBox).Text; kontakt.Drzava = (userControl.FindControl("txtDrzava") as TextBox).Text; kontakt.PostanskiBroj = (userControl.FindControl("txtPBR") as TextBox).Text; kontakt.Mob1 = (userControl.FindControl("txtMob1") as TextBox).Text; kontakt.Mob2 = (userControl.FindControl("txtMob2") as TextBox).Text; kontakt.Tel1 = (userControl.FindControl("txtTel1") as TextBox).Text; kontakt.Tel2 = (userControl.FindControl("txtTel2") as TextBox).Text; kontakt.Fax = (userControl.FindControl("txtFax") as TextBox).Text; kontakt.Email1 = (userControl.FindControl("txtEmail1") as TextBox).Text; kontakt.Email2 = (userControl.FindControl("txtEmail2") as TextBox).Text; kontakt.Aktivan = (userControl.FindControl("chkAktivan") as CheckBox).Checked; kontakt.idOvlasti = Convert.ToInt32(rcbOvlasti.SelectedItem.Value); kontakt.Username = (userControl.FindControl("txtUsername") as TextBox).Text; string passwordHash = FormsAuthentication.HashPasswordForStoringInConfigFile((userControl.FindControl("txtPassword") as TextBox).Text, "MD5"); kontakt.Password = passwordHash; db.AddToKontakt(kontakt); db.SaveChanges();}protected void btnSearch_Click(object sender, EventArgs e){ var kontakti = from k in db.Kontakt select k; int idTipUsera = Convert.ToInt32(rcbTipUsera.SelectedValue); int idTvrtka = Convert.ToInt32(rcbTvrtka.SelectedValue); if (rcbTvrtka.SelectedValue != "0") { kontakti = kontakti.Where(k => k.idFirma == idTvrtka); } if (rcbTipUsera.SelectedValue != "0") { kontakti = kontakti.Where(k => k.idOvlasti == idTipUsera); } if (chkAktivan.Checked == true) { kontakti = kontakti.Where(k => k.Aktivan == true); } else { kontakti = kontakti.Where(k => k.Aktivan == false); } int idKontakt = Convert.ToInt32(Request.QueryString["idk"]); int idAuthKontakt = Convert.ToInt32(Session["authenticatedUI"]); if (idKontakt > 0 && idAuthKontakt == idKontakt) { gvKontakti.DataSource = from k in kontakti where k.idKontakt == idKontakt orderby k.Prezime, k.Ime select new { Tvrtka = k.Firma.Naziv, k.idKontakt, Naziv = k.Ime + " " + k.Prezime, Funkcija = k.Funkcija, k.Ime, k.Prezime, k.Tel1, k.Tel2, k.Mob1, k.Mob2, k.Email1, k.Email2, k.Fax, k.Adresa1, k.Adresa2, k.Adresa3, k.Grad, k.PostanskiBroj, k.Drzava, k.Biljeske, k.Aktivan, k.Username, k.Password }; } else if (idKontakt > 0 && idAuthKontakt != idKontakt) { gvKontakti.DataSource = from k in kontakti where k.idKontakt == idKontakt orderby k.Prezime, k.Ime select new { Tvrtka = k.Firma.Naziv, k.idKontakt, Naziv = k.Ime + " " + k.Prezime, Funkcija = k.Funkcija, k.Ime, k.Prezime, k.Tel1, k.Tel2, k.Mob1, k.Mob2, k.Email1, k.Email2, k.Fax, k.Adresa1, k.Adresa2, k.Adresa3, k.Grad, k.PostanskiBroj, k.Drzava, k.Biljeske, k.Aktivan, k.Username, k.Password }; } else { gvKontakti.DataSource = from k in kontakti orderby k.Prezime, k.Ime select new { Tvrtka = k.Firma.Naziv, k.idKontakt, Naziv = k.Ime + " " + k.Prezime, Funkcija = k.Funkcija, k.Ime, k.Prezime, k.Tel1, k.Tel2, k.Mob1, k.Mob2, k.Email1, k.Email2, k.Fax, k.Adresa1, k.Adresa2, k.Adresa3, k.Grad, k.PostanskiBroj, k.Drzava, k.Biljeske, k.Aktivan, k.Username, k.Password }; } gvKontakti.DataBind();}protected void gvKontakti_ItemCommand(object sender, GridCommandEventArgs e){ if (e.CommandName == "Delete") { GridEditableItem editedItem = e.Item as GridEditableItem; int idKontakt = Convert.ToInt32(editedItem.GetDataKeyValue("idKontakt")); var assets = from a in db.Asset where a.idKontakt == idKontakt select a; Kontakt kontakt = db.Kontakt.SingleOrDefault(k => k.idKontakt == idKontakt); int assetCount = db.Asset.Count(a => a.idKontakt == idKontakt); if (assetCount != 0) { foreach (var asset in assets) { db.DeleteObject(asset); } } db.DeleteObject(kontakt); db.SaveChanges(); }}protected void btnReset_Click(object sender, EventArgs e){ rcbTipUsera.Items.FindItemByValue("0").Selected = true; rcbTvrtka.Items.FindItemByValue("0").Selected = true; chkAktivan.Checked = true; gvKontakti.Rebind();}I apologize for the size of code posted but I think it could be useful to understand my problem better.
Thank you!
Regards,
Hrvoje