Bagaimana saya bisa memasukkan variabel ke dalam kontrol Silverlight 3 dari kode ASP.NET saya?

Saya sedang bermain dengan Silverlight 3 saat ini. Saya mencoba memasukkan ID pengguna saat ini ke halaman Silverlight 3. Saya telah melakukan sedikit riset dan initParams tampaknya merupakan cara yang tepat. Masalahnya adalah, mereka sepertinya menggunakan kontrol asp:Silverlight dan itu hilang di SL3. Saya terjebak saat mencoba memasukkan variabel ke dalam daftar initParams, dengan asumsi ini adalah cara yang tepat.

Saya sudah mulai dengan aplikasi Silverlight 3 baru yang disebut "MyFirstSilverlightApp". Saya telah menambahkan halaman di belakang kode ke "MyFirstSilverlightAppTestPage.aspx" untuk memungkinkan saya melakukan hal-hal cerdas.

Saya telah berhasil membuat kode keras initParam dengan menambahkan ini ke parameter definisi objek:

    <param name="initParams" value="userID=id42" />

Di App.xaml.cs, saya telah menambahkan yang berikut ini ke Application_Startup:

    string userID = e.InitParams["userID"];

dan saya telah meneruskannya ke halaman saya dalam parameter di konstruktor dan kemudian menggunakannya dalam kontrol. Itu semua berhasil.

Apa yang saya tidak bisa temukan adalah bagaimana mendapatkan nilai dari variabel yang saya buat di belakang kode ke dalam definisi nilai nama param. Bantuan apa pun akan diterima dengan senang hati.


person serialhobbyist    schedule 21.09.2009    source sumber


Jawaban (2)


Salah satu pendekatan kotor yang cepat adalah dengan menggunakan <% %> di param: -

<param name="intiParams" value="userID=<%=myUserID%>" />

Solusi pilihan saya adalah membuat Kontrol Web Silverlight saya sendiri yang dapat merender tag objek dan isinya dengan cara yang disesuaikan dengan aplikasi saya.

person AnthonyWJones    schedule 21.09.2009
comment
Ah, ya, itu berhasil. Saya telah melihat referensi ke tag tersebut tetapi tanpa tanda = saya tidak dapat membuatnya berfungsi. Seperti yang Anda katakan, ini terasa agak kotor tetapi berhasil untuk ini. Saya belum pernah menulis kontrol web - Saya cenderung mencoba-coba ASP.NET jika perlu, jadi saya hanya melakukan hal-hal dasar. Saya kira Anda tidak dapat memposting kode contoh untuk hal seperti itu, bukan? - person serialhobbyist; 21.09.2009

Tambahkan ke koleksi sumber daya Anda.

Cobalah sesuatu seperti.

For Each item As KeyValuePair(Of String, String) In e.InitParams
    Resources.Add(item.Key, item.Value)
Next
person MLT    schedule 21.09.2009
comment
Saya kira Anda belum memahami masalah saya. Entah itu, atau saya belum memahami solusi Anda. e.InitParams tersedia di Application_Startup bukan? Saya perlu memasukkan parameter ke e.InitParams, bukan dari e.InitParams. Saya mencoba memasukkannya ke dalam aplikasi Silverlight saya. - person serialhobbyist; 21.09.2009
comment
Anda benar, maaf, saya salah membaca postingan Anda. ini mengacu pada penanganan param setelah diteruskan ke aplikasi Anda. - person MLT; 21.09.2009