Jag skrv såhär:
Request.Params("Test11:Textbox1")
Då får jag tag på värdet i den genererade textrutan.
...men skulle vilja veta hur man brukar göra... :-/
6 svar · 414 visningar · startad av ironhead
Hej!
Tänkte skapa en användarkontroll med en enkel textbox, men hur i hela friden hämtar jag värdet i Textboxen vid Button1_click
text1.ascx
<%@ Control Language="vb" AutoEventWireup="false" Codebehind="test1.ascx.vb" Inherits="Proj1.test1" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
test.aspx
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="test.aspx.vb" Inherits="Proj1.test" %>
<%@ Register TagPrefix="uc1" TagName="test1" Src="test1.ascx" %>
'html...form etc.
<uc1:test1 id="Test11" runat="server" />
<asp: Button id="Button1" Text="button1" runat="server" />
Jag skrv såhär:
Request.Params("Test11:Textbox1")
Då får jag tag på värdet i den genererade textrutan.
...men skulle vilja veta hur man brukar göra... :-/
Usercontrols är som default helt slutna, för att kunna leva sitt eget liv, men om du vill komma åt texten så får du göra TextBoxen public i kontrollen, eller exponera den via en public property.
emission skrev:
Usercontrols är som default helt slutna, för att kunna leva sitt eget liv, men om du vill komma åt texten så får du göra TextBoxen public i kontrollen, eller exponera den via en public property.
Har du möjlighet att ge mig ett kodexempel?
Jag får inte till det....har testat med:
test1.ascx
<asp:textbox id="TextBox1" runat="server"></asp:textbox>
test1.ascx.vb
Public Class test1
Inherits System.Web.UI.UserControl
Protected TextBox1 As TextBox
Public Property testar() As String
Get
Return TextBox1.Text
End Get
Set(ByVal Value As String)
TextBox1.Text = Value
End Set
End Property
test.aspx
<%@ Register TagPrefix="uc1" TagName="test1" Src="test1.ascx" %>
<uc1:test1 id="Test11" runat="server" />
<asp:button id="Button1" runat="server" Text="Button" />
test.aspx.vb
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Här vill jag sätta ett värde i textbox1(Test11) från kontrollen...
'Test11.Text = "klick!" ???!!!
End Sub
...men vet inte vad jag ska skriva för att få värdet till textrutan...
Ändrade detta:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim s as test1 = new test1
s.testar = "testvärde!"
Response.write(s.testar)
End Sub
..men får fortfarande inte ut nåt värde...vad gör jag fel?
Får fel på:
TextBox1.Text = Value
Object reference not set to an instance of an object.
ah! Äntligen...
Lösningen:
test.aspx.vb
Protected WithEvents Test11 As test1
Test11.testar = "text i textrutan!"