Update Checkboxu   zodpovězená otázka

ASP.NET WebForms, Databáze

Zdravím, ve FormView mám CheckBox, insert hodnoty checkboxu funguje bezproblému, ale update ne. Příkaz Bind mi aspčko nechce vzít, vypíše to chybu za běhu: "Specified cast is not valid." Snažil jsem se hodnotu převést na string

(Bind("Hodnota").ToString() == "1" ? true:false

to mi ale zase nahlásí chybu: "CS0103: The name 'Bind' does not exist in the current context"

eval takto funguje, ale ten nevrací hodnotu, tak nic neuloží. Používám databázi Oracle a datový typ Char(1).

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

Bind nesmíte použít uvnitř výrazu, jedině samostatně.

Bind do vlastnosti Checked normálně funguje a používá se, jen ten sloupec musí být typu Boolean. Pokud vám to funguje v Insertu, musí to jít i v Update, je to naprosto stejné.

Nemáte nějaký lepší datový typ, např. int nebo bit? Oracle neznám, nevím, jestli tam bit je.

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

Právě že pokud dám Bind("Hodnota") u insertu, tak se normálně uloží 1 nebo 0 aniž bych něco převáděl z boolean, pokud se nemýlím tak checkbox předává právě boolean. Nevýhodou oracle je že boolean nemá, tak používám char, zkoušel jsem to i s datovým typem number, ale je to stejné jako s char tj. insert jde a update ne. Bit oracle tuším nemá.

PS.:Vyřešil jsem to ne moc elegantě tak, že půlku záznamů s formview ukádám normálně v asp přes updatecommand a hodnoty true v checkboxu si přes C# převádím na 1, respektive false na 0 a poté přes vytvořené připojení dané hodoty ukládám. Účel to plní, asi to není nejvhodnější a nejrychlejší řešení, ale na jiné jsem bohužel nepřišel.

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

A nebylo by lepší přímo Bindu předat dohnodu než to někde v kódu přetypovávat ?

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

Proč jsem asi odpovídal na druhý příspěvek?

Eval je jednosměrná vazba, můžete jej použít ve výrazu, třeba takto. Bind je obousměrný, tam to nejde.

V binding expressionu může být buď <%# výraz %> anebo <%# Bind("něco") %>, ale Bind uvnitř výrazu být nemůže - není to funkce, je to speciální syntaktický konstrukt.

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

Jojo omlouvám se za ten první příspěvek, jsem to nějak špatně pochopil. Jak jsem si četl znovu to řešení, tak nebylo by asi nejjednodušší v události ItemUpdating prvku FormView upravit hodnotu z CheckBoxu na daný tvar, jak potřebujeme a tuto hodnotu předat Bindu nějakého HiddenFieldu ?

nahlásit spamnahlásit spam 0 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