[ Smireni Magnet @ 17.08.2008. 23:30 ] @
Recimo da sadrzim stringove:
string controlname;
string propertyname;
string value;

Zelim da property-ju kome je ime <propertyname>, a koje pripada kontroli kojoj je ime <controlname>, dodelim vrednost <value>. Kako to da uradim?


Unapred hvala,

SM
[ Prokleta_Nedelja @ 18.08.2008. 06:53 ] @
Citat:
Recimo da sadrzim stringove

LOL, sadrzis stringove....

Property ces ovako dodijeliti

Code:
Public class mojaKlasa
{
string _naziv;
public string MojProperty
    {
        get { return _naziv; }
        set { _naziv = value; }
    }
}
[ Smireni Magnet @ 18.08.2008. 08:20 ] @
Ne razumes ti mene...

Ne govorim o c# properties vezanih za klasu, vec za konkretne property-je koje sadrze kontrole na web stranici.


Recimo da imamo sledecu situaciju:

Code:

public static void setProperty (string controlname, string propertyname, string value) 
{
...
}


i ja pozovem f-ju

Code:

setProperty ("txtFirstName", "Text", "Smireni Magnet");


i ova f-ja na stranici locira kontrolu po imenom txtFirstName (koja je TextBox) i njenom property-ju Text dodeljuje vrednost "Pa, dobro, bre...".

a kasnije pozovem f-ju
Code:

setProperty ("lbFirstName", "Text", "Ime: ");


koja na stranici locira kontrolu pod imenom lbFirstName (labelu) i njenom property0ju Text dodeljuje vrednost "Ime: ".

[ mmix @ 18.08.2008. 11:47 ] @
Da lociras kontrolu po imenu mozes relativno lako (pretrazi ovaj forum, bilo je o tome par tema), ali da bi odredjenom propertiju instance dao vrednost ne mozes direktno kroz dodelu =, moras da ides kroz refleksiju.
[ toxi_programer @ 18.08.2008. 11:53 ] @
Miljane, može li neki primer kako to uraditi pomoću refleksije, or neki link...?
[ mmix @ 18.08.2008. 12:35 ] @
Eve ga, plus sample promene Text propertija u asp.net textbox-u. Fokus na PromeniProperty metod.

Code:

using System;
using System.Reflection;
using System.Web.UI.WebControls;

namespace ConsoleApplication1
{
    class Program
    {
        static void PromeniProperty(object instanca, string propName, object value)
        {
            PropertyInfo pInfo = instanca.GetType().GetProperty(propName, value.GetType());
            if (pInfo == null) throw new InvalidCastException("Nema propertija ili type mismatch");
            pInfo.SetValue(instanca, value, null);
        }

        static void Main(string[] args)
        {
            TextBox tb = new TextBox();
            tb.Text = "Stari Text";
            Console.WriteLine(tb.Text);

            PromeniProperty(tb, "Text", "Novi Text");
            Console.WriteLine(tb.Text);
            Console.ReadLine();
        }
    }
}
[ Smireni Magnet @ 18.08.2008. 13:15 ] @
muchos gracias...
[ Prokleta_Nedelja @ 19.08.2008. 09:09 ] @
Citat:
Ne razumes ti mene...


Pa kako da razumijem kad šturo objasniš šta ti treba. Vidiš kako si u drugom postu lijepo objasnio šta želiš.