Plánovač   zodpovězená otázka

ASP.NET WebForms

Zdravím,chci se zeptat,jakým způsobem by se řešil tzv. plánovač.Jedná se o aplikaci,že máme nějakou tabulku,kde hlavičky sloupců nám zobrazují čas od-do např:

(8:00 - 9:30| 9:30 - 11:00 | atd.) a řádky nám zobrazují datumy.Buňky budou CheckBoxy.Tedy po označení CheckBoxu na True,se nám někam (např do DB) uloží datum a čas konkrétního řádku a sloupce.Vůbec nevím, jakým způsobem by se to řešilo.Zda použít gridView či DataList nebo postačí obyčejná tabulka.S tím,že hlavičky sloupců,tedy časy,bych chtěl načíst nějak z parametrů,kde bude počáteční čas,konečný čas a rozmezí mezi jednotlivými časy.Tedy z příkladu výše by byly parametry 8h,11h,1:30h a automaticky se nám vygenerují sloupce viz výše.Děkuji

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Asi bych vygeneroval vlastní tabulku (asp:Table), kde se do každé buňky vygeneruje odkaz, ve kterém se předá vybraný řádek a sloupec.

Příklad:

ASPX:

<asp:Literal ID="LiteralValue" runat="server" />

<asp:Table ID="Table1" runat="server" border="1">
</asp:Table>

CS:

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

private void SaveValue()
{
  if (Request["Time"]!=null)
  {
    LiteralValue.Text = string.Format("Date: {0}, Time: {1}", Request["Date"], Request["Time"]);
  }
}

private void FillTable()
{
  var times = new string[] { "8", "9", "10" };
  var dates = new string[] { "19.10.2010", "20.10.2010", "21.10.2010" };

  // headers
  var rowHeader = new TableRow();
  rowHeader.Cells.Add(new TableCell()
  {
    Text = "Datum"
  });
  foreach (var time in times)
  {
    rowHeader.Cells.Add(new TableCell()
    {
      Text = time
    });
  }
  Table1.Rows.Add(rowHeader);

  // cells
  foreach (var date in dates)
  {
    var row = new TableRow();
    row.Cells.Add(new TableCell()
    {
      Text = date
    });
    foreach (var time in times)
    {
      row.Cells.Add(new TableCell()
      {
        Text = string.Format(@"<a href=""Scheduler.aspx?Time={0}&Date={1}"">vybrat</a>", time, date)
      });
    }
    Table1.Rows.Add(row);
  }
}

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

To je přesně ono,co k tomu budu potřebovat.Díky moc za tu námahu

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zdravím,chci se ještě zeptat.V předchozím kódu jsi použil link(vybrat),který odkazuje na jinou stránku s určitým datumem a časem.Šlo by použít místo linku i checkBox?Po označení CheckBoxu na true se nám někde(např. do proměnné) uloží určitý datum a čas.Díky moc

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Do ASPX přidat javascriptovou funkci:

<script type="text/javascript">
  function SelectCell(date, time) {
    window.location = "Scheduler.aspx?Date=" + date + "&Time=" + time;
  }
</script>

v C# změnit generování obsahu buňky:

Text = string.Format(@"<input type=""checkbox"" onclick=""javascript: SelectCell('{0}', '{1}');"" />", date, time)

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback