2011-06-29 6 views
0

だから私は、次のような方法は、ASP.NETは、分離コードでTRするCSSクラスを追加しようとし

protected void isDirector_CheckedChanged(object sender, EventArgs e) 
{ 
    HtmlTableRow row = (HtmlTableRow)e.Item.FindControl("today"); 

しかし、取得中にエラーが

CS0117持っている:「System.EventArgs」が「項目の定義が含まれていません。 「

EDIT:

<asp:UpdatePanel ID="UpdatePanel2" 
         runat="server" 
         UpdateMode="Conditional"> 
         <ContentTemplate> 
      <asp:RadioButtonList ID="isDirector" RepeatDirection="Horizontal" runat="server" AutoPostBack="True" OnSelectedIndexChanged="isDirector_CheckedChanged"> 
       <asp:ListItem Text="Yes" Value="True" selected></asp:ListItem> 
       <asp:ListItem Text="No" Value="False"></asp:ListItem> 
      </asp:RadioButtonList> 
      </ContentTemplate> 
         </asp:UpdatePanel> 
<asp:UpdatePanel 
<ContentTemplate> 

    <tr runat="server" id="test"> 
     <td>Director First Name:</td> 
     <td><asp:TextBox ID="DirectorfirstNametxt" runat="server" MaxLength="100" CssClass="input"></asp:TextBox> 
     <asp:RequiredFieldValidator ID="RequiredFieldValidator5" Display="None" runat="server" 
      ErrorMessage="Director First Name is required." ControlToValidate="DirectorfirstNametxt"></asp:RequiredFieldValidator> 
       </td> 
     </tr> 

</ContentTemplate> 
<Triggers> 
    <asp:AsyncPostBackTrigger ControlID="isDirector" EventName="SelectedIndexChanged" /> 
</Triggers> 

TR ID = "test"のCSSクラスを変更しようとしています

+0

これは、HTML-TableRow内のCheckBoxからのCheckedChanged-Eventハンドラと仮定します。送信者をCheckBoxにキャストしようとすると、HtmlTableRowのParentParent-Controlになります。 –

+0

...だから、 'tr'の' runat = server'を作る必要があります。 –

+0

CheckedChanged-EventハンドラのTRのCSSCLASSをCheckBoxからどのように変更できるのかまだ分かりません。 – StevieB

答えて

4

あなたはHTML-のTableRowの内側にあなたのチェックボックスがあり、CheckedChangedイベントにTRのCSSクラスを設定したいと仮定すると:

これは一例です(TR年代が持っていることに注意してくださいrunat="server"-tag):

<table> 
    <tr ID="TR1" runat="server"> 
     <td> 
      <asp:CheckBox ID="CheckBox1" OnCheckedChanged="isDirector_CheckedChanged" AutoPostBack="true" runat="server" /> 
     </td> 
    </tr> 
    <tr ID="TR2" runat="server"> 
     <td> 
      <asp:CheckBox ID="CheckBox2" OnCheckedChanged="isDirector_CheckedChanged" AutoPostBack="true" runat="server" /> 
     </td> 
    </tr> 
    <tr ID="test" runat="server"> 
     <td> 
      <asp:CheckBox ID="CheckBox3" OnCheckedChanged="isDirector_CheckedChanged" AutoPostBack="true" runat="server" /> 
     </td> 
    </tr> 
    </table> 

、これは分離コードです:

protected void isDirector_CheckedChanged(object sender, EventArgs e) 
{ 
    //var row = (HtmlTableRow)((CheckBox)sender).Parent.Parent; 
    test.Attributes("class") = "CssClass"; 
} 

編集:もしあなたtr'srunat="server"であり、それらには一意のIDがあります。

+0

IDでTRを参照する必要があります – StevieB

+0

@StevieB: 'runat = server'一意のIDのIDを介して直接 "テスト" -trにアクセスすることができます(私の編集された回答を参照)。 –

0

isDirector_CheckChangedはどのようなコントロールになっていますか?チェックボックス?

エラーが示すように、EventArgsは期待しているイベントのタイプであり、 'Item'プロパティはありません。 GridView、Repeater、または他の「アイテムのような」コントロールを考えているかもしれませんか?

繰り返し/テーブルコントロールに入れたチェックボックスの変更イベントを処理しようとしているようです。その場合は、Itemプロパティを持つEventArgs派生型を使用するリピータのSelectedまたは類似のイベントを処理する必要があります。

+0

チェックボックスはい、オンチェンジチェックボックスが発生したときにTRのcssClassを編集するにはどうすればいいですか? – StevieB

関連する問題