Hej, försöker göra någonting i stil med det här: Först och främst måste du inkludera namnrymden som WebControl ligger i genom att lägga till Tack, jag har inte kodat i asp.net på ett tag så hade glömt lite basics (att göra en cast i det här fallet).En metod som kan behandla olika fält.
<code> public static string SaveData(params WebControl[] Fields)
{
string FieldValues = "";
string CurrentValue;
foreach (WebControl Field in Fields)
{
switch(Field.GetType().ToString()) {
case "System.Web.UI.WebControls.TextBox" :
CurrentValue = Field.Text;
break;
case "System.Web.UI.WebControls.DropDownList" :
CurrentValue = Field.SelectedValue;
break;
}
FieldValues += " " + CurrentValue + " ";
}
return FieldValues;
}</code>
Man ska alltså kunna skicka in sina fält till metoden så ska den hämta ut fältets data och behandla den.
Problemet är att jag inte vet hur jag ska göra med olika typer av fält. Hur gör jag så att den kan ta in både TextBoxes och DropDownLists?
Med koden ovan får jag felet:
Compiler Error Message: CS1061: 'System.Web.UI.WebControls.WebControl' does not contain a definition for 'Text' and no extension method 'Text' accepting a first argument of type 'System.Web.UI.WebControls.WebControl' could be found (are you missing a using directive or an assembly reference?)
Source Error:
Line 28: switch(Field.GetType().ToString()) {
Line 29: case "System.Web.UI.WebControls.TextBox" :
Line 30: CurrentValue = Field.Text;
Line 31: break;Sv: En metod som kan behandla olika fält.
<code>
using System.Web.UI.WebControls;
</code>
först i filen. Om du arbetar i annat än en webbapplikation måste du också inkludera System.Web.dll filen (lägga till en referens till den).
I varje case sats måste du konvertera Field till den typ som du identifierat, till exempel genom att skriva <code>
CurrentValue = ((TextBox) Field).Text;
</code>Sv:En metod som kan behandla olika fält.
Tack så mycket :)