Hej! Hej, Hej och tack för ditt svar. Hej, Hej tack för ditt tålamod! Hej, en usercontol uppdateras automatiskt eftersom den är inbyggd på en annan sida. Uppdateringen sker antingen via sidvisning eller en postback. Jag skall se om jag inte kan hitta någon kod som du kan använda för att försöka förstå hur det går till. Hej!Skriva till en WebUserControl
Jag har letat och letat MEN ej hittat någon lösning. Jag skulle bli väldigt glad om någon kan hjälpa mig.
Jag har gjort en web UserControl som jag vill uppdatera text i som ligger i en tabell "det går bra att lägga in Label i stället om det är bättre" MEN tabellen behöver jag. Jag generera inget Event från Websidan utan får via "codebehind, C#" Windows som genererar ett event som jag fångar upp.
Eventet fungerar och jag får in ny information MEN jag kan inte ersätt den gamla text med den nya.
Dessutom så har jag flera instanser av web UserControlen på sidan. Som skall leva sina egna liv, så om en uppdaterar texten så skall den ej påverka dom andra web UserControlerna.
Denna sida skall bara visa uppdaterad information utan att någon rör sidan.
/Jan OlofsonSv: Skriva till en WebUserControl
Om jag förstår dig rätt så är det oftast enklast att i din userkontroll skapa public properties get och set för att kunna uppdatera denna label. Sedan från den sida som du dragit in din usercontrol kan du nå denna label. Sv:Skriva till en WebUserControl
MEN jag förstår nog inte riktigt.
Både label och eventet finns i Usercontrollen, skall jag skape ett event i usercontrollen som hoppar tillbaka till sidan som jag dragit in usercontrol från för att ändra labeln?
Sidan skall bara tugga och gå utan att någon skall behöva klicka för att uppdatera den. Uppdateringen skall ske med eventen som kommer till usercontrollen.Sv: Skriva till en WebUserControl
Skapa en public property Get och Set i din usercontrol. Sedan kan du nå dessa properties i ditt huvudformulär efter att du skapat en referens mellan din usercontrol och din huvudsida. Jag vet att jag skapat någon exempelkod som skall finnas här på pellesoft - men kunde inte hitta den igår när jag letade efter det.
Sv:Skriva till en WebUserControl
Jag har provat, kollar jag i codebehind i usercontrollen så har den bytt informationen i label, MEN den uppdaterar inte websidan.
Kan man göra någon slags refresh på usercontrollen så texten uppdateras sig på sidan.Sv: Skriva till en WebUserControl
Sv:Skriva till en WebUserControl
Jag har svårt att få ut något på websidan, i WebUserControl1.ascx.cs kodeen så uppdateras label'n "Info" MEN inte på websidan.
Jag hänger inte riktigt med (inte alls) hur jag skall kunna få ex. postback i WebUserControl1 så att sidan uppdaterar sig.
Jag simulerar det event "som kommer från Windows i den riktiga versionen" som anropas av i WebUserControl1.ascx.cs med en Timer.
Jag behöver flera instanser av WebUserControl1.
Är det någon som kan ge mig lite hjälp på vägen, det borde ju enkelt gå att uppdatera informationen i web usercontrolen tycker jag, har väl missat något visäntligt förmodligen. Jag vore väldigt tacksam för all hjälp jag kan få, börjar bli både gråhårig och tunnhårig, det kan bero på åldern också.
Här är den förenklade koden:
WebForm1.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1Test.WebForm1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>IndexButton test page</title>
</head>
<body>
<form id="form1" runat="server">
<table>
<tr>
<td>
<asp:PlaceHolder ID="PlaceHolder1" runat="server"/>
<br />
</td>
</tr>
</table>
</form>
</body>
</html>
WebForm1.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Security.Permissions;
using System.ComponentModel;
namespace WebApplication1Test
{
public partial class WebForm1 : System.Web.UI.Page
{
string callbackResult;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
for (int i = 0; i < 2; i++)
{
WebApplication1Test.WebUserControl1 ucItemSummary = (WebApplication1Test.WebUserControl1)LoadControl("~/WebUserControl1.ascx");
//Set Control properties
ucItemSummary.ID = "My Control " + i.ToString();
ucItemSummary.Step = (i + 1) * 50;
//Break between the controls
PlaceHolder1.Controls.Add(new LiteralControl("<br/>"));
////Add Control to the Place Holder
PlaceHolder1.Controls.Add(ucItemSummary);
// Add the instance of the SimpleControl to Session Variable
Session.Add((Session.Count + 1).ToString(), ucItemSummary);
ucItemSummary.TestReturn += test1_TestReturn;
}
}
}
void test1_TestReturn(System.Web.UI.UserControl testx1, string testx2)
{ }
}
}
WebUserControl1.ascx
<%@ Control Language="C#" CodeBehind="WebUserControl1.ascx.cs" Inherits="WebApplication1Test.WebUserControl1" %>
<asp:Table ID="Table1" runat="server" border="0" width="200" cellpadding="0" style="border-collapse: collapse; font-size: 1em">
<asp:TableRow >
<asp:TableCell ID="info_" colspan="3">
<ContentTemplate>
<asp:Label Text="Info" ID="Info" runat="server" />
</ContentTemplate>
</asp:TableCell>
</asp:TableRow>
</asp:Table>
WebUserControl1.ascx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication1Test
{
public delegate void test(System.Web.UI.UserControl test1, string test2);
public partial class WebUserControl1 : System.Web.UI.UserControl
{
public event test TestReturn;
System.Timers.Timer MyTimer = new System.Timers.Timer(20000);
public string DefaultNote
{
get { return this.Info.Text; }
set
{
this.Info.Text = value;
}
}
private int Step_;
public int Step
{
get { return Step_; }
set { Step_ = value; }
}
protected void Page_Init(object sender, EventArgs e)
{
MyTimer.Enabled = false;
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
DefaultNote = "Defaul text";
if (Step > 0)
MyTimer.Enabled = true;
MyTimer.Elapsed += MyTimer_Elapsed;
}
}
int Tal = 0;
void MyTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
Tal++;
DefaultNote = (Tal + Step).ToString();
}
protected virtual void OnbtnDelQtnMrClk(EventArgs e)
{
TestReturn(this, e.ToString());
}
protected void test(object sender, EventArgs e)
{
OnbtnDelQtnMrClk(e);
}
}
}