c# - Pass parameters to a user control - asp.net -
i have user control:
<user:ratingstars runat="server" product="<%= getproductid() %>" category="<%= getcategoryid() %>"></user:ratingstars>
you can see fill in product , category calling 2 methods:
public string getproductid() { return productid.tostring(); } public string getcategoryid() { return categoryid.tostring(); }
i not understand why, in user control, when take data received (product , category) gives me "<%= getproductid() %>" instead of giving id received method...
any kindly appreciated...
edit: solved with: product='<%# getproductid() %>'
last problem: in user control have this:
public string productid; public string product { { return productid; } set { productid = value; } }
so, expect productid set ok in user control. unfortunately null when try use it...
is there wrote that's incorrect?
so compile-time checking, can give user control id
, set product
, category
properties in c# this:
aspx:
<user:ratingstars id="myusercontrolid" runat="server" product="<%= getproductid() %>" category="<%= getcategoryid() %>"></user:ratingstars>
cs:
myusercontrolid.product = getproductid(); myusercontrolid.category = getcategoryid();
also, 5arx mentions, once you've populated refreshing page reload control , you'll lose product
, category
ids. can handle using viewstate on properties in user control, this:
private const string productkey = "productviewstatekey"; public string product { { if (viewstate[productkey] == null) { // whatever want here in case it's null // throw error, return string.empty or whatever } return viewstate[productkey].tostring(); } set { viewstate[productkey] = value; } }
note: i've updated property name casing follow convention, makes more sense me way! personally, i'd suffix ids id
(eg: productid
) distinguish property contains product
object. read more coding standards here: are there suggestions developing c# coding standards / best practices document?
Comments
Post a Comment