EDIT
Well, your problem is with the read-only LinkButton Style Property
public CssStyleCollection Style { get; }
But you can use the CssClass property
public virtual string CssClass { get; set; }
So you can do something like this:
Define a style tag out of your control:
<style>
.myclassBlock{
text-decoration:none;
display: block
.myclassNone{
text-decoration:none;
display:none;
}
</style>
But if you apply your conditional logic in your Linkbutton markup:
<asp:LinkButton ID="lnkActivate" CssClass='<%#Convert.ToBoolean(Eval("Activate")) ? "myclassBlock" : "myclassNone"%>' runat ="server" CommandArgument='<%# Eval("ID") %>' OnClientClick ='return confirm("You want to send email to user to activate his account?");' CommandName ="activate" Text="Send Email" ></asp:LinkButton>
In the output, you will see the following:
<a onclick="return confirm("You want to send email to user to activate his account?");" id="lnkActivate" class="<%#Convert.ToBoolean(Eval("Activate")) ? "myclassBlock" : "myclassNone"%>" href="javascript:__doPostBack('lnkActivate','')">Send Email</a>
'<%#Convert.ToBoolean(Eval("Activate")) ? "myclassBlock" : "myclassNone"%>' .
, - :
LinkButton:
<form>
<asp:Repeater ID="rpHostUsersList" runat="server" OnItemDataBound="rpHostUsersList_OnItemDataBound">
<HeaderTemplate>
<table border="1">
<tr>
<td><b>Activate</b></td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%#Convert.ToBoolean(Eval("Activate")) ? "Yes" : "No"%> <asp:LinkButton ID="lnkActivate" runat="server" Text="Send Email"></asp:LinkButton></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</form>
Datatable " " , :
protected void Page_Load(object sender, EventArgs e)
{
Activate = true;
var ds = new DataSet();
var dt = new DataTable();
dt.Columns.Add("Activate");
dt.Rows.Add(new object[] { true });
dt.Rows.Add(new object[] { false });
dt.Rows.Add(new object[] { true });
ds.Tables.Add(dt);
rpHostUsersList.DataSource = ds;
rpHostUsersList.DataBind();
}
, , :
protected void rpHostUsersList_OnItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
var currentData = ((System.Data.DataRowView)e.Item.DataItem)["Activate"];
var b = Convert.ToBoolean(currentData);
var btn = (LinkButton)e.Item.FindControl("lnkActivate");
btn.CssClass = b ? "myclassBlock" : "myclassNone";
}
}
OUTPUT
