开发者

Cannot access the CSS class for a link button from Code behind

Can we include a CSS class from code behind for a link button?

I have been trying this for a while, but I was not able to get it done. It does not show a hyper link nor does CSS work. Please refer to my code and see where am I doing wrong.

string link1 = "google.com"
lblclick.Text = "&开发者_运维技巧lt;p>See what our page looks like by clicking " 
+ "<asp:LinkButton CssClass="+"linkclass" + ">" 
+ link1 + "</asp:LinkButton>


if you want to add a linkbutton to a panel from codebehind you will have to create it from code.

LinkButton lb = new LinkButtton();
lb.cssclass="linkclass";
lb.text = "foo";
panel1.Controls.Add(lb);


Create the LinkButton in code like this:

LinkButton linkButton = new LinkButton();
linkButton.CssClass = "linkclass";
linkButton.Text = "google.com";


You can't just add ASP.NET markup as a textproperty in your code, ASP doesn't work like that. Create a Linkbutton btn = new LinkButton(), and add it: lblclick.Controls.Add(btn). Then you can edit the properties of btn as you please.


If lblclick is a Label, then you can't add a asp tag like LinkButton just like that.

If you can (or if you move the LinkButton to your markup) you need to add the runat="server" to be able to set properties like CssClass on it. If you just want a plain link you can add an anchor tag instead.

lblclick.Text = "<p>See what our page looks like by clicking 
<a href=\"" + link + "\" class=\"linkclass\">" + link1 + "</a></p>"

Actually, if you want a link to another page you shouldn't use LinkButton at all, but rather the HyperLink class. You can use the NavigateUrl property to set the url to open when clicking the link.

If you want to add it to your markup you do it like this

<asp:HyperLink
     NavigateUrl="http://www.example.com"
     CssClass="linkclass"
     Text="link1"
     runat="server" />

and if you want to do it dynamically in code you add it by creating it and adding it to your Controls collection.

HyperLink link = new HyperLink();
link.NavigateUrl = "http://www.example.com";
link.Text = "link1";
link.CssClass = "linkclass";
Controls.Add(link);

Just remember that when you add controls dynamically you should add it in your Page_Load event every time you load your page. If you don't want it to display set its Visible property to false and change it to true based on an event or something. Perhaps not as important when using a HyperLink, but good practice nonetheless. An example of when dynamic controls bite you if you don't is this question asked recently.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜