2017-08-11 64 views
1

我们正试图改变直放站的DropDownList的背景颜色为灰白单选按钮列表selectedItem属性是新的。有条件地改变Repeater DropDownList的背景颜色?

否则,保持背景为白色。

下面的代码保存在后台到格雷RadioButtonList的selectedItem属性是否是新的或使用。

我错过了什么?

// CSS

<style> 
    .disabledcss 
    { 
     background-color: #F9F9F9; 
     color: blue; 
     border: 1px solid gray; 
     color: Gray; 
    } 
</style> 
<style> 
    .enabledcss 
    { 
     background-color: #fff; 
     color: blue; 
     border: 1px solid white; 
     color: Gray; 
    } 
</style> 

//标记:

<tr> 
<td> 
Item Type:<asp:RadioButtonList ID="rblPType" runat="server" ValidationGroup ="stype" RepeatDirection="Horizontal" TextAlign="Right" style="display:inline;" AutoPostBack="true" OnSelectedIndexChanged="rblPurchaseType_SelectedIndexChanged"> 
<asp:ListItem Text="New" /> 
<asp:ListItem Text="Used" /> 
</asp:RadioButtonList><br /> 
<asp:RequiredFieldValidator style="color:#ff0000;" id="RequiredFieldValidator1" ControlToValidate="rblPurchaseType" ErrorMessage="Please choose New or Used" ValidationGroup ="stype" runat="server" /> 
</td> 
<td></td> 
</tr> 
<tr> 
<td colspan="2"> 
<asp:Panel ID="uPanel" runat="server" Enabled="false"> 
STATE: <asp:DropDownList ID="ddlState" cssClass="disabledcss enabledcss" runat="server" AppendDataBoundItems="True"> 
    <asp:ListItem Value="" Selected="True"></asp:ListItem> 
    </asp:DropDownList>  
</div></span></asp:Panel> 
</td> 
</tr> 

C#在ItemDataBound事件

RadioButtonList rbPurchase = e.Item.FindControl("rblPType") as RadioButtonList; 

foreach (RepeaterItem ReapterItem in Repeater2.Items) 
{ 
    var rblType = (DropDownList)e.Item.FindControl("ddlState"); 
    if (rblType.Enabled == false) 
    { 
     rblType.CssClass = "disabledcss"; 
    } 
    else 
    { 
     rblType.CssClass = "enabledcss"; 
    } 
} 

注:我看到的这个论坛不约三个例子适用于我自己。 谢谢

+0

在您的浏览器中的HTML,您的课程是否会来? – Yogesh

+0

为什么你同时使用cssClass =“disabledcss enabledcss”?你也可以发送完整的HTML标记吗? –

+0

@SamanGholami,我最初使用的是disabledcss类,这导致了灰色背景。添加enabledcss类没有任何区别。无论如何,为了万一我可能遗漏了一些东西,我在这里发布了它。 完整的CSS是1500行。我发布了相关的代码。 – Kenny

回答

0

您同时使用CSS类样式下降downlist。

cssClass="disabledcss enabledcss" 

您需要澄清一个或另一个的用法 - 这可以与JQuery一起使用 - 从下拉列表中添加和删除类。或者尝试是这样的:

if (rblType.Enabled == false) 
{ 
    // rblType.CssClass = "disabledcss"; 
    rblType.CssClass = rblType.CssClass.Replace("enabledcss", "disabledcss"); 
} 
else 
{ 
    // rblType.CssClass = "enabledcss"; 
    rblType.CssClass = rblType.CssClass.Replace("disabledcss", "enabledcss"); 
} 

只要有一个CSS类的下拉列表。

<asp:DropDownList ID="ddlState" cssClass="disabledcss" runat="server" AppendDataBoundItems="True"> 
+0

是的,我完全同意这可以在JQuery中完成。这也是我的偏好,但是对于RadioButtonList和DropDownList,Repeater控件太挑剔。 感谢您的帮助。 受影响,它导致错误。 – Kenny

+0

@肯尼发生了什么? –

+0

它抛出一个rblType未定义的错误。 – Kenny