2011-06-29 68 views
0

所以我有以下方法ASP.NET試圖增加CSS類代碼隱藏於TR

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

但得到錯誤

CS0117:「System.EventArgs」不包含「項目的定義「

編輯:

<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類的CSS ID =「test」

+0

我假設這是一個CheckedChanged事件處理程序,它來自HTML-TableRow中的CheckBox。您可以嘗試將發件人投射到您的複選框,並且它是ParentParent-Control到HtmlTableRow。 –

+0

...因此您需要製作'tr'的'runat = server'。 –

+0

他們是,但我仍然不知道如何從CheckBox中更改CheckedChanged事件處理程序中的TR的CSSCLASS – 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直接訪問「test」-tr(見我編輯的答案)。 –

0

isDirector_CheckChanged與哪種控件綁定 - 複選框?

由於錯誤提示,EventArgs是您期望的事件類型,並且它沒有「Item」屬性。也許你正在考慮使用GridView,Repeater或其他「項目式」控件?

我猜你正在嘗試處理已放入重複/表格控件的複選框的已更改事件。如果是這樣,你需要爲中繼器處理一個Selected或者類似的事件,它使用一個帶有Item屬性的EventArgs派生類型。

+0

它是一個複選框是的,如何在onchange複選框發生時編輯TR的cssClass – StevieB