Toon posts:

[C#] Runtime Usercontrol Textarea getting value probleempje

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo,

Ik heb van iemand een applicatie overgenomen die geheel in ASP.NET met c# geschreven is. Nou ben ik zelf niet onwijs bekend met het .net framework en loop dan ook tegen hetvolgende probleem op.

Ik kan de ingevulde tekst niet invullen. Ik heb 2 usercontrols. 1 die een lijstje met radiobuttons cijfers 1 tot 10 zijn. Deze wordt gewoon goed opgepakt. Verder heb ik een usercontrol die een mogelijkheid geeft om een open tekstveld in te vullen. Wanneer ik deze in zou vullen alsvolgt:

code:
1
<asp:TextBox ID="txaInput" text="blaat" runat="server" CssClass="formElement"  />


Dan wordt blaat wel gewoon in de db gezet. Wanneer de tekst wordt aangepast door de gebruiker blijft deze alsnog blaat. Ik kan met c# niet om txaInput.value vragen.

Hier en daar hoor ik dat ik het met javascript moet proberen, ik heb echter geen idee hoe. Googlen levert ook weinig op.

Ik maak in runtime een textbox aan aan de hand van in de database (access) gespecificeerde textboxes. Dit gaat alsvolgt:

default.aspx

Wie helpt mij uit de brand.. Ik wordt hier echt gefrustreerd van...

edit:
Woy: code weg gehaald

[ Voor 63% gewijzigd door Woy op 11-03-2009 15:27 ]


Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 23-09 22:06

TeeDee

CQB 241

Javascript heeft er (vooralsnog) niks mee te maken.
Ik zou het gewoon eens aan de maker vragen. Ik heb geen zin om dit allemaal te ontcijferen. Je zal ook eens een uitgeklede test case kunnen maken.

ASP.NET:
1
<asp:TextBox id="txaInput" Text="Blaat" runat="Server" />

C#:
1
string tbxValue = txaInput.Text;

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
TeeDee schreef op woensdag 11 maart 2009 @ 15:10:
Javascript heeft er (vooralsnog) niks mee te maken.
Ik zou het gewoon eens aan de maker vragen. Ik heb geen zin om dit allemaal te ontcijferen. Je zal ook eens een uitgeklede test case kunnen maken.

ASP.NET:
1
<asp:TextBox id="txaInput" Text="Blaat" runat="Server" />

C#:
1
string tbxValue = txaInput.Text;
Dit werkt dus wel. Ik krijg blaat altijd terug. Ook al verander ik in de tekstbox Blaat voor blabla, dan geeft de string alsnog blaat weer.

Ik heb even verder zitten kijken en probeer via een Request.Form[txaInput.Text.UniqueId]; de gegevens terug te vragen. Dit werkt echter ook niet...

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Heb je al gebprobeerd om een lege pagina te maken met alleen een asp:TextBox en een button om een postback te triggeren in de aspx file en dan in de codebehind de Text Property op te vragen in je postback?

We kunnen hier geen support leveren op de code die je overgenomen hebt, dan zul je toch bij de maken moeten zijn.
Verwijderd schreef op woensdag 11 maart 2009 @ 15:19:
[...]
Dit werkt dus wel. Ik krijg blaat altijd terug. Ook al verander ik in de tekstbox Blaat voor blabla, dan geeft de string alsnog blaat weer.
Heb je dat getest met een eenvoudige pagina? Want ik heb het idee dat je toch wat anders fout doet. Daarmee bedoel ik dus dat je niet allerlei dingen met dynamische controls, en database calls gaat doen. Je moet eerst proberen je probleem te isoleren.
Ik heb even verder zitten kijken en probeer via een Request.Form[txaInput.Text.UniqueId]; de gegevens terug te vragen. Dit werkt echter ook niet...
Dit is dus niet de juiste manier om je data op te vragen.

Ik heb overigens even een grote lap code weg gehaald, die niet direct wat met je probleem te maken heeft. Het is de bedoeling dat je alleen Relevante code plaatst.

[ Voor 61% gewijzigd door Woy op 11-03-2009 15:29 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 23-09 22:06

TeeDee

CQB 241

Ik vermoed dat je nog ergens een !IsPostBack moet zetten.

edit:
'dit werkt ook niet' is natuurlijk een erg rekbaar iets.

[ Voor 39% gewijzigd door TeeDee op 11-03-2009 15:39 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
TeeDee schreef op woensdag 11 maart 2009 @ 15:38:
Ik vermoed dat je nog ergens een !IsPostBack moet zetten.

edit:
'dit werkt ook niet' is natuurlijk een erg rekbaar iets.
en waar dan wel? Overal waar ik dit probeer in de get functie krijg ik de boel alsnog niet werkend..

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Als je nou eens een eenvoudige pagina maakt, en dan duidelijk verteld wat er niet lukt, met daarbij relevante code, dan kunnen we je mischien verder helpen.

Maar met de melding: Het werkt niet, hoe moet het wel?, kunnen we niet zo veel.

Als ik een simpele pagina maak, met een textbox, label en button. En dan in de Button_Click hetvolgende zet
C#:
1
myLabel.Text = myTextbox.Text;

Dan doet dat gewoon wat het moet doen.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Woy schreef op donderdag 12 maart 2009 @ 12:05:
Als je nou eens een eenvoudige pagina maakt, en dan duidelijk verteld wat er niet lukt, met daarbij relevante code, dan kunnen we je mischien verder helpen.

Maar met de melding: Het werkt niet, hoe moet het wel?, kunnen we niet zo veel.

Als ik een simpele pagina maak, met een textbox, label en button. En dan in de Button_Click hetvolgende zet
C#:
1
myLabel.Text = myTextbox.Text;

Dan doet dat gewoon wat het moet doen.
Dat is het nou juist. Het is niet een gewoon tekstveld. Het is een op runtime dynamisch aangemaakte textveld. Uit de database wordt gevraagd aan de hand van het klantid hoeveel tekstvelden/lijsten met radiobuttons moeten komen.

Tuurlijk werkt die optie die jij aangeeft. Het gaat dan immers om een statisch tekstveld. Als ik op een lege pagina een dynamisch tekstveld op precies dezelfde manier aanmaak krijg ik hetzelfde probleem.

Acties:
  • 0 Henk 'm!

Verwijderd


Het is niet nodig om zomaar te gaan Flamen

[ Voor 79% gewijzigd door Woy op 12-03-2009 13:50 ]


Acties:
  • 0 Henk 'm!

Verwijderd

* commentaar op moderating kan in Feedback op moderatie binnen de Devschuur. En MS met een dollarteken is enorm kinderachtig. *

[ Voor 81% gewijzigd door Creepy op 12-03-2009 14:25 ]


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Verwijderd schreef op donderdag 12 maart 2009 @ 13:40:
[...]


Dat is het nou juist. Het is niet een gewoon tekstveld. Het is een op runtime dynamisch aangemaakte textveld. Uit de database wordt gevraagd aan de hand van het klantid hoeveel tekstvelden/lijsten met radiobuttons moeten komen.

Tuurlijk werkt die optie die jij aangeeft. Het gaat dan immers om een statisch tekstveld. Als ik op een lege pagina een dynamisch tekstveld op precies dezelfde manier aanmaak krijg ik hetzelfde probleem.
Als je niet meer informatie geeft, wat er waar mis gaat kunnen we je niet verder helpen. Ik verwacht wel wat meer inzet van jezelf. Anders heeft dit topic niet echt bestaansrecht.

Met bijvoorbeeld de volgende code werkt het bij mij ook gewoon goed
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public partial class _Default : System.Web.UI.Page
{
    private TextBox myTextBox;
    protected void Page_Load(object sender, EventArgs e)
    {
        myTextBox = new TextBox();
        Form.Controls.Add(myTextBox);
    }

    protected void myButton_Click(object sender, EventArgs e)
    {
        myLabel.Text = myTextBox.Text;
    }
}

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • dotcode
  • Registratie: Augustus 2003
  • Laatst online: 23-09 08:42

dotcode

///\00/\\

Dat is het nou juist. Het is niet een gewoon tekstveld. Het is een op runtime dynamisch aangemaakte textveld. Uit de database wordt gevraagd aan de hand van het klantid hoeveel tekstvelden/lijsten met radiobuttons moeten komen.
Dan moet je er voor zorgen dat hij een constant ID krijgt waardoor je hem weer terug kan vinden in de postback. Als je in de Load het control met de zelfde ID genereerd zal je je waarde terug gaan vinden in de Text property.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
dotcode schreef op donderdag 12 maart 2009 @ 15:15:
[...]


Dan moet je er voor zorgen dat hij een constant ID krijgt waardoor je hem weer terug kan vinden in de postback. Als je in de Load het control met de zelfde ID genereerd zal je je waarde terug gaan vinden in de Text property.
Eindelijk iets waar ik wat aan heb. Ik ga ff proberen wat ik hiermee kan..

Bedankt :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Soms heb je zo'n geniale ingeving om in de trein van werk naar huis even je code door te gaan kijken..

Gaar dat je al bent van de hele dag denk je.. laat ik mijn default.aspx eens doorkijken..

Erachter komend dat ik de volgende regel miste:
code:
1
<%@ Register src="Systeem/UserControls/TextAreaInput.ascx" tagname="TextAreaInput" tagprefix="synbiose" %>


Zonder die regel wordt de assembly niet aangemaakt waardoor de controls niet gebruikt kunnen worden. Het tekstveld wordt wel mooi neergezet maar de controls erachter werken niet.. :/

bij deze is het dus opgelost.. Bedankt voor de hulp :)

[ Voor 4% gewijzigd door Verwijderd op 12-03-2009 18:28 ]

Pagina: 1