2017-08-11 7 views
1

RadioButtonList selectedItemがNewの場合、Repeater DropDownListの背景色をGrayに変更しようとしています。リピータードロップダウンリストの背景色を条件付きで変更しますか?

それ以外の場合は、背景を白にします。

次のコードは、RadioButtonList selectedItemが新規か使用されているかにかかわらず、背景をGrayに保ちます。

私には何が欠けていますか?

// 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"; 
    } 
} 

注:私はしないでください。このフォーラムでは約3つの例を見てきました自分自身に適用する。

+0

お使いのブラウザでは、あなたのクラスは来ていますか? – Yogesh

+0

なぜ、両方ともcssClass = "disabledcss enabledcss"を使用していますか?また、完全なHTMLマークアップを送ることができますか? –

+0

@ SamanGholami、私は当初、灰色の背景になったdisabledcssクラスを使用しました。 enabledcssクラスを追加しても差はありません。私が何かを残してしまった場合に備えて、私はそれをここに掲載しました。 完全なCSSは1500行です。私は関連コードを掲示した。 – Kenny

答えて

0

両方のCSSクラスを使用してドロップダウンリストをスタイル設定しています。

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"); 
} 

ドロップダウンリストには1つのCSSクラスがあります。

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

はい、私はこれがJQueryで行われた可能性があることに全く同意します。これも私の好みですが、RadioButtonListとDropDownListについては、Repeaterコントロールはあまりにも厄介です。 ご協力いただきありがとうございます。 これが原因で、エラーが発生しています。 – Kenny

+0

@Kenny何が起こっているのですか? –

+0

rblTypeが未定義であるというエラーが発生しています。 – Kenny

関連する問題