Finns det någon inbyggd-funktion för förhandsgranskning i .net? Beror på vad du menar att du ska förhandsgranska. Jag har ett formulär för att skriva artiklar. Och innan man postar artikeln vill jag att man ska kunna förhandsgranska den så att man ser hur den ser ut när man har postat den. Om man inte blev nöjd när man postade den ska man kunna gå tillbaka och redigera den så att den blir bra. Eftersom all text ligger i sina kontroller och därför finns kvar efter en PostBack så kan du göra så här. Okej. Tack. Du ska inte kolla efter PostBack eftersom det garanterat ÄR en PostBack när du klickar på knappen. Så ta bort IsPostBack IF:en. En annan grej. Använd 2 st Panels istället. I den ena har du dina TextBoxar och i den andra dina Labels. Hmm, det vill inte fungera. Du måste läsa på om hur kontrollerna i ASP.NET fungerar, http://samples.gotdotnet.com/quickstart/.Förhandsgranskning
Om inte, vilket är det smidigaste sättet att förhandsgranska en text? Sv: Förhandsgranskning
Beskriv gärna lite mer vad du vill göra.Sv: Förhandsgranskning
Sv: Förhandsgranskning
Lägg en osynlig Panel på din sida. Om ditt formulär täcker hela sidan så får du lägga så att din Panel täcker allt. I din Panel lägger du Labels så att layouten blir som en "riktig" artikel.
När man klickar på länken "Förhandsgranska" så görs en PostBack. I länkens PostBack-funktion sätter du Text i Panelens olika Labels till de värden du har skrivit i formuläret och så gör du Panelen visible. När man klickar på t.ex. "Stäng" i Panelen så gör du bara Panelen osynlig så ser man formuläret igen med alla värden intakta.Sv: Förhandsgranskning
Hur ska jag göra för att sättta värdena från formuläret till labels?
lblArtikel = tbArtikel.Text;
lblRubrik = tbRubrik.Text;
Då får jag det här felmeddelandet:
Cannot implicitly convert type 'string' to 'System.Web.UI.WebControls.Label'
Sv: Förhandsgranskning
Det verkar inte vilja fungera.
protected void PreviewArticle_Click(object sender, EventArgs e)
{
if(!(Page.IsPostBack))
{
lblListAll.Visible = false;
lblNewArticle.Visible = false;
lblPreviewArticle.Visible = true;
lblArtikel.Text = tbArtikel.Text;
lblRubrik.Text = tbRubrik.Text;
}
}
Så här ser knappen ut.
<asp:Button id="cmdPreview" onclick="PreviewArticle" Runat="server" Text="Förhandsgranska"></asp:Button>
Vad kan vara fel?
Sv: Förhandsgranskning
Sv: Förhandsgranskning
När du klickar på knappen sättar du alla Labels.Text = TextBoxar.Text och sen gör du första Panel osynlig och den andra Panel synlig.
Mycket mindre att hålla reda på.Sv: Förhandsgranskning
private void Page_Load(object sender, System.EventArgs e)
{
if(!(Page.IsPostBack))
{
lblNewArticle.Visible = false;
lblPreviewArticle.Visible = false;
lblListAll.Visible = true;
}
}
private void NewArticle()
{
lblListAll.Visible = false;
lblPreviewArticle.Visible = false;
lblNewArticle.Visible = true;
}
protected void PreviewArticle_Click(object sender, EventArgs e)
{
lblListAll.Visible = false;
lblNewArticle.Visible = false;
lblPreviewArticle.Visible = true;
lblArtikel.Text = tbArtikel.Text;
lblRubrik.Text = tbRubrik.Text;
}
Och i html
<asp:Label ID="lblListAll" Runat="server">
<h1>Artiklar</h1>
<asp:Repeater id="myRepeater" Runat="server">
<ItemTemplate>
<p><%#DataBinder.Eval(Container.DataItem, "Rubrik").ToString()%></p>
</ItemTemplate>
</asp:Repeater>
</asp:Label>
<asp:Label ID="lblNewArticle" Runat="server">
<h1>Ny artikel</h1>
<p>Rubrik</p>
<asp:TextBox id="Rubrik" Runat="server" TextMode="SingleLine"></asp:TextBox>
<p>Artikel</p>
<asp:TextBox id="Artikel" Runat="server" TextMode="MultiLine" Columns="45" Rows="20"></asp:TextBox>
<p>
<asp:Button id="PreviewArticle" onclick="PreviewArticle_Click" Runat="server" Text="Förhandsgranska"></asp:Button>
</p>
</asp:Label>
<asp:Label id="lblPreviewArticle" Runat="server">
<h1><asp:Label id="lblRubrik" Runat="server" />aa</h1>
<p><asp:Label id="lblArtikel" Runat="server" />aa</p>
</asp:Label>
lblListAll, ska man se rubrikerna på alla artiklar. Ska sedan vara en länk och om man klickar på den ska man komma till den specefika artikeln. Där inne ska det finnas några kontroller för att ta bort och redigera, nog om det.
Jag märkte när man använder panel så fick man tabell och jag använder divs istället för tabeller så jag gjorde det som label, men det borde väl fungera lika bra?
När jag har klickat på förhandsgranska så händer det inget, och när jag kollar källkoden på aspx-sidan så ser det ut så här:
<code>
<span id="_ctl1_lblNewArticle"></span>
</code>
Ser någon vad som är fel?
Sv: Förhandsgranskning
Just nu stoppar du in en massa kontroller i en Label, men om du ska göra det ska du använda t.ex. en Literal, eller en PlaceHolder. Men jämfört med Panel så är det mycket sämre i ett sådant här fall.
Angående Panel som blir en TABLE, vad använder du för webbläsare?
Läs den här artikeln, http://aspalliance.com/556 , om hur du ska använda Panels. Om du vill ha en DIV för att placera så lägg en Panel i en DIV. För att översätta artikeln till din applikation tänk på artikelinput som en sida och förhandsgranskning som nästa sida.