Kan man bygga en Server Control som ärver alla egenskaper från en datagrid men där man lägger till några nya funktioner som tex Print funktion. Japp det kan du göra utan några som helst problem. Ok vet du om det finns något exempel på detta någonstanns. Vad är det jag ska läsa om. Skapa en ny server kontroll, se till att ärva DataGrid, lägg till dina extra metoder: Okej, har kompilerat den och lagt till den i min toolbox, Så här ser min server control ut Fick rätt på det, det var nog ett namn fel. För att slippa se den tråkig grå ruta så lägg till kodan nedan i din klass: Min control ser ut så här <code> TackarServer Control
Mitt problem är att jag ska göra en sida med väldigt många Datagrids och jag vill då inte behöva lägga till generella funktioner på varje sida utan jag vill kunna lägga till detta på min datagrid och så finns den funktionen sen på alla sidor.
Kan man på något sätt göra detta.Sv: Server Control
/Fredrik Normén NSQUARED2
http://www.nsqured2.netSv: Server Control
Sv: Server Control
<code>
public class MyDataGird : DataGrid
{
public void Print(...)
{
}
}
</code>
/Fredrik Normén NSQUARED2
http://www.nsquared2.netSv: Server Control
<code>
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
namespace OptoDataGrid
{
/// <summary>
/// Summary description for WebCustomControl1.
/// </summary>
[DefaultProperty("Text"),
ToolboxData("<{0}:WebCustomControl1 runat=server></{0}:WebCustomControl1>")]
public class OptoDataGrid1 : DataGrid
{
}
}
</code>
kan jag nu få den så den ser ut precis som en vanlig datagrid när jag drar in den i mitt projekt, för när jag gör det nu, så står det
Error Creating Control WebCusomControl11
vad gör jag för felSv: Server Control
<code>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<cc1:WebCustomControl1 id="WebCustomControl11" style="Z-INDEX: 101; LEFT: 40px; POSITION: absolute; TOP: 40px"
runat="server"></cc1:WebCustomControl1>
</form>
</code>
Nu har jag controllen på min sida, kan jag inte jobba mot denna control precis som med en datagrid, dvs se designen och så på datagriden. nu ser jag ju bara den gråa rutan. Sv: Server Control
VB.Net
<code>
Protected Overrides Sub Render(ByVal writer As HtmlTextWriter)
MyBase.Render(writer)
End Sub
</code>
Visual C#
<code>
protected override void Render(HtmlTextWriter output)
{
base.Render(output);
}
</code>
/Fredrik Normén NSQUARED2
http://www.nsquared2.netSv: Server Control
Är det så här jag ska göra för att sätta att min kontroll alltid ska ha showfooter till true och allowpaging = true, för när jag har dragit in kontroller syns den nu, men allowpaging och showfooter verkar inte vara satta. Gör jag något fel
<code>
public class WebCustomControl1 : System.Web.UI.WebControls.DataGrid
{
public WebCustomControl1() : base()
{
ItemCreated +=new DataGridItemEventHandler(WebCustomControl1_ItemCreated);
}
public void WebCustomControl1_ItemCreated(object sender, DataGridItemEventArgs e)
{
e.Item.Font.Name = "Arial";
e.Item.ID = "dg";
DataGrid a = (DataGrid)sender;
a.ShowFooter = true;
a.AllowPaging = true;
}
protected override void Render(HtmlTextWriter output)
{
base.Render(output);
}
}
</code> Sv: Server Control
public class WebCustomControl1 : System.Web.UI.WebControls.DataGrid
{
public WebCustomControl1() : base()
{
base.ShowFooter = true;
base.AllowPaging = true;
}
protected override void Render(HtmlTextWriter output)
{
base.Render(output);
}
}
</code>
/Fredrik Normén NSQUARED2
http://www.nsquared2.netSv: Server Control
Kan jag på något sätt göra så att min datagrid har en viss stril "Auto Format" när man drar in den på sidan.
eller kan jag sätta färgerna i min server kontroll. För det verkar inte finnas någon sätt färg funktion.
<code>
public WebCustomControl1() : base()
{
base.Font.Name = "Arial";
base.ShowFooter = true;
base.AllowPaging = true;
base.BackColor.Name
// här vill jag sätta färgen
base.backcolor ?????
}
</code>