Advertisement
klimentmichal

Gridview coder

May 19th, 2016
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 10.07 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.Linq;
  5. using System.Text.RegularExpressions;
  6. using System.Web;
  7. using System.Web.UI;
  8. using System.Web.UI.WebControls;
  9.  
  10. namespace aspnet_administartion
  11. {
  12.     public partial class _Default : Page
  13.     {
  14.  
  15.         DataClasses1DataContext db = new DataClasses1DataContext();
  16.         bool flagEmptyRow = false;//vlajka pro zobrazeni gridview - když je prázdne
  17.         protected void Page_Load(object sender, EventArgs e)
  18.         {
  19.             //vyresetovaní flajky
  20.             flagEmptyRow = false;
  21.         }
  22.         protected void PageRender(object sender, EventArgs e)
  23.         {
  24.             if (flagEmptyRow)
  25.             {
  26.                 // skrytí prazndeho řádku
  27.                 GridView1.Rows[0].Visible = false;
  28.             }
  29.         }
  30.         /// <summary>
  31.         ///    nastaveni filtru
  32.         /// </summary>
  33.         /// <param name="sender"></param>
  34.         /// <param name="e"></param>
  35.         protected void LinqSource_Selecting(object sender, LinqDataSourceSelectEventArgs e)
  36.         {
  37.             //switch pro nastaveni filtru
  38.             switch (SetFilter.Value)
  39.             {
  40.                 case "name":
  41.                     e.Result = db.Restaurants.Where(p => p.Name.ToLower().Contains(searchString.Text.ToLower()));
  42.                     break;
  43.                 case "phone":
  44.                     e.Result = db.Restaurants.Where(p => p.Phone.ToLower().Contains(searchString.Text.ToLower()));
  45.                     break;
  46.                 case "mail":
  47.                     e.Result = db.Restaurants.Where(p => p.Email.ToLower().Contains(searchString.Text.ToLower()));
  48.                     break;
  49.                 default:
  50.                     if (db.Restaurants.Count() == 0)//pokud je gridview prazdny a neni nastavena filtrace vytvori falseny řádek
  51.                     {
  52.                         e.Result = new Restaurant();
  53.                         flagEmptyRow = true;//nastaveni vlajky pro schovani falesneho radku
  54.                     }
  55.                     else
  56.                         e.Result = db.Restaurants;
  57.                     break;
  58.             }
  59.  
  60.         }
  61.         protected void LinqSource_Selected(object sender, LinqDataSourceStatusEventArgs e)
  62.         {
  63.  
  64.         }
  65.         /// <summary>
  66.         ///     zruseni pridani nove restaurace
  67.         /// </summary>
  68.         /// <param name="sender"></param>
  69.         /// <param name="e"></param>
  70.         protected void CancelNew_Click(object sender, EventArgs e)
  71.         {
  72.             GridViewRow row = (GridViewRow)((sender as Button).NamingContainer);
  73.             //vyčištění polí
  74.             ((TxtBox)row.FindControl("NewName")).Value = "";
  75.             ((TxtBox)row.FindControl("NewPhone")).Value = "";
  76.             ((TxtBox)row.FindControl("NewEmail")).Value = "";
  77.         }
  78.         /// <summary>
  79.         ///    ulozeni nove restaurace
  80.         /// </summary>
  81.         /// <param name="sender"></param>
  82.         /// <param name="e"></param>
  83.         protected void SaveNew_Click(object sender, EventArgs e)
  84.         {
  85.             // This is the crux -
  86.             GridViewRow row = (GridViewRow)((sender as Button).NamingContainer);
  87.             Restaurant r = new Restaurant();
  88.             //nalezeni ovladacich prvků
  89.             TxtBox txtName = (TxtBox)row.FindControl("NewName");
  90.             TxtBox txtPhone = (TxtBox)row.FindControl("NewPhone");
  91.             TxtBox txtMail = (TxtBox)row.FindControl("NewEmail");
  92.  
  93.             //serverova validace
  94.             if (db.Restaurants.Any(p => p.Name == txtName.Value))
  95.             {
  96.                 errorBox.Controls.Add(new LiteralControl("Jméno musí být 3-50 znaků dlouhé"));
  97.                 return;
  98.             }
  99.             //serverova validace
  100.             if (Regex.IsMatch(txtName.Value, @".{3,50}"))
  101.             {
  102.                 errorBox.Controls.Add(new LiteralControl("header musí být 3-30 znaků dlouhý"));
  103.                 return;
  104.             }
  105.             r.Name = txtName.Value;
  106.             //serverova validace
  107.             if (Regex.IsMatch(txtPhone.Value, @"^[0-9]{3} [0-9]{3} [0-9]{3}$"))
  108.             {
  109.                 errorBox.Controls.Add(new LiteralControl("Zadejte telefon ve formátu 123 456 789"));
  110.                 return;
  111.             }
  112.             r.Phone = txtPhone.Value;
  113.             //serverova validace
  114.             if (Regex.IsMatch(txtMail.Value, @"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"))
  115.             {
  116.                 errorBox.Controls.Add(new LiteralControl("Zadejte validní email"));
  117.                 return;
  118.             }
  119.  
  120.             r.Email = txtMail.Value;
  121.             db.Restaurants.InsertOnSubmit(r);
  122.             db.SubmitChanges();
  123.            
  124.             GridView1.DataBind();
  125.         }
  126.         /// <summary>
  127.         ///   zacatek editace
  128.         /// </summary>
  129.         /// <param name="sender"></param>
  130.         /// <param name="e"></param>
  131.         protected void Edit_Click(object sender, EventArgs e)
  132.         {
  133.             //spusteni editačního modu
  134.             GridViewRow row = (GridViewRow)((sender as Button).NamingContainer);
  135.             GridView1.EditIndex = row.RowIndex;
  136.  
  137.         }
  138.         /// <summary>
  139.         ///  konec editace
  140.         /// </summary>
  141.         /// <param name="sender"></param>
  142.         /// <param name="e"></param>
  143.         protected void CancelEdit_Click(object sender, EventArgs e)
  144.         {
  145.             // neni receno jestli se maji vynulovat data - tak je nechávám být a vypinam validacni mod
  146.             GridView1.EditIndex = -1;
  147.         }
  148.         /// <summary>
  149.         ///    ukladani članků
  150.         /// </summary>
  151.         /// <param name="sender"></param>
  152.         /// <param name="e"></param>
  153.         protected void SaveArticle_Click(object sender, EventArgs e)
  154.         {
  155.             GridViewRow row = (GridViewRow)((sender as Button).NamingContainer);
  156.  
  157.  
  158.             Label lblname = (Label)row.FindControl("lblName");
  159.             Button btnNew = (Button)row.FindControl("SetNewArticle");
  160.  
  161.             ArticlePanel arrPanel = (ArticlePanel)row.FindControl("articlePanel");
  162.             arrPanel.RestauraceId = lblname.Text; //ziskani restaurant ID
  163.             arrPanel.NewArticle = !btnNew.Visible;  // bool pro zjisteni - jestli se jedna o novy clanek nebo o upravu
  164.             if (arrPanel.SaveEvent())//pokud probehlo ulozeni - vracim gridview do pivodni podoby
  165.             {
  166.  
  167.                 SetVisibile(row, "EditingPanel", false);
  168.                 SetVisibile(row, "ClosePanel", false);
  169.                 SetVisibile(row, "Edit", true);
  170.  
  171.                 SetVisibile(row, "SetNewArticle", false);
  172.                 SetVisibile(row, "ShowFrom", true);
  173.             }
  174.         }
  175.         /// <summary>
  176.         ///    zobrazeni formulare članku
  177.         /// </summary>
  178.         /// <param name="sender"></param>
  179.         /// <param name="e"></param>
  180.         protected void ShowFrom_Click(object sender, EventArgs e)
  181.         {
  182.             GridViewRow row = (GridViewRow)((sender as Button).NamingContainer);
  183.  
  184.             Label lblname = (Label)row.FindControl("lblName");
  185.             ArticlePanel arrPanel = (ArticlePanel)row.FindControl("articlePanel");
  186.             arrPanel.RestauraceId = lblname.Text;
  187.             arrPanel.FillDropDownList();
  188.  
  189.             SetVisibile(row, "EditingPanel", true);
  190.             SetVisibile(row, "ClosePanel", true);
  191.             SetVisibile(row, "Edit", false);
  192.  
  193.             SetVisibile(row, "SetNewArticle", true);
  194.             SetVisibile(row, "ShowFrom", false);
  195.  
  196.         }
  197.         /// <summary>
  198.         ///    ukocení spravy članku
  199.         /// </summary>
  200.         /// <param name="sender"></param>
  201.         /// <param name="e"></param>
  202.         protected void ClosePanel_Click(object sender, EventArgs e)
  203.         {
  204.             GridViewRow row = (GridViewRow)((sender as Button).NamingContainer);
  205.  
  206.             ArticlePanel arrPanel = (ArticlePanel)row.FindControl("articlePanel");
  207.             arrPanel.NewArticle = false;
  208.             arrPanel.ClearTxt();
  209.             //zaviram celou editaci - nevim zda-li jsem spravne pochopil
  210.             SetVisibile(row, "EditingPanel", false);
  211.             SetVisibile(row, "ClosePanel", false);
  212.             SetVisibile(row, "Edit", true);
  213.  
  214.             SetVisibile(row, "SetNewArticle", false);
  215.             SetVisibile(row, "ShowFrom", true);
  216.         }
  217.         /// <summary>
  218.         ///     nastaveni modu novy članek
  219.         /// </summary>
  220.         /// <param name="sender"></param>
  221.         /// <param name="e"></param>
  222.         protected void SetNewArticle_Click(object sender, EventArgs e)
  223.         {
  224.             GridViewRow row = (GridViewRow)((sender as Button).NamingContainer);
  225.  
  226.             ArticlePanel arrPanel = (ArticlePanel)row.FindControl("articlePanel");
  227.             arrPanel.NewArticle = true;// tento parametr nastavi pohled na pridavani novych članků
  228.  
  229.             SetVisibile(row, "SetNewArticle", false);
  230.         }
  231.         /// <summary>
  232.         ///    funkce pro shovavani a zobrazovani ovladacivh prvku v zaznamu (Row)
  233.         /// </summary>
  234.         /// <param name="row"> radek gridu</param>
  235.         /// <param name="nameControl">nazev prvku</param>
  236.         /// <param name="visible">jaky stav ma byt nastaven</param>
  237.         protected void SetVisibile(GridViewRow row, string nameControl, bool visible)
  238.         {
  239.             Control control = row.FindControl(nameControl);
  240.             control.Visible = visible;
  241.         }
  242.         /// <summary>
  243.         ///    udalost nastaveni filtru
  244.         /// </summary>
  245.         /// <param name="sender"></param>
  246.         /// <param name="e"></param>
  247.         protected void Filter_Click(object sender, EventArgs e)
  248.         {
  249.             SetFilter.Value = Type.SelectedValue;
  250.             GridView1.DataBind();
  251.  
  252.         }
  253.         /// <summary>
  254.         ///   udalost zrušení filtru
  255.         /// </summary>
  256.         /// <param name="sender"></param>
  257.         /// <param name="e"></param>
  258.         protected void ShowAll_Click(object sender, EventArgs e)
  259.         {
  260.             SetFilter.Value = "";
  261.             GridView1.DataBind();
  262.         }
  263.  
  264.  
  265.     }
  266. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement