webForumDet fria alternativet

Hämta värde i textruta från uc

.NET

6 svar · 414 visningar · startad av ironhead

Medlem sedan mars 20011 346 inlägg
Frågan#1

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" />
Medlem sedan mars 20011 346 inlägg
#2

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... :-/

Medlem sedan dec. 19996 721 inlägg
#3

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.

Medlem sedan mars 20011 346 inlägg
#4

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?

Medlem sedan mars 20011 346 inlägg
#5

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...

Medlem sedan mars 20011 346 inlägg
#6

Ä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.

Medlem sedan mars 20011 346 inlägg
#7

ah! Äntligen...

Lösningen:

test.aspx.vb

Protected WithEvents Test11 As test1

Test11.testar = "text i textrutan!"
252 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)