1

これが私のページのスニペットです:

...
<asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
  <table>
    <tr>
      <td>
        <asp:TextBox MaxLength="255" ID="myTextBox" runat="server"></asp:TextBox>
      </td>
    </tr>
  </table>
</asp:Content>
...

ページのコード ビハインド ピースは次のとおりです。

...
Control parent = this.myTextBox.Parent; //this is acutally asp:Content control
string parentID = parent.ID; //this is PlaceHolderMain
...

必要なのは、要素を参照することです (プロパティ<td>を変更したいため)。Visibilityどうすればこれを達成できますか?私はどこでそんなにひどく間違ったのですか?:)

4

4 に答える 4

1

tdアクセスして親要素として分類するには、サーバー側で実行する必要があります。

<td id="td" runat="server">
   <asp:TextBox MaxLength="255" ID="myTextBox" runat="server"></asp:TextBox>
</td>
于 2013-09-04T10:09:22.523 に答える
1

ASPX コード ビハインドは、実際には ASP コントロール (つまり、タグに asp: プレフィックスが付いているもの) についてしか認識していません。td は単なる古い html です。コード ビハインドと対話するには、タグに runat="server" を追加する必要があります。

于 2013-09-04T10:10:36.407 に答える
0

他のユーザーが提案したように、属性 runat を<td>タグに追加します。

<td id="mytd" runat="server">
   <asp:TextBox MaxLength="255" ID="myTextBox" runat="server"></asp:TextBox>
</td>

次に、C#側(ページバック)

このヘッダファイルを追加

using System.Web.UI.HtmlControls;
protected void Button_click(object sender,EventArgs e)
{
  mytd.Attributes.Add("style","visibility:none");
}
于 2013-09-04T10:31:37.737 に答える
0

ここのテーブルは HTML テーブルであり、ASP.NET サーバー コントロールではありません。したがって、コードビハインドでアクセスすることはできません。

次の場合にこれを使用します。

<asp:Table ID="Table1" runat="server">
            <asp:TableRow ID="TableRow1" runat="server" ForeColor="Teal">
                <asp:TableCell>
                    <asp:TextBox MaxLength="255" ID="myTextBox" runat="server"> 
                    </asp:TextBox>
                </asp:TableCell>
            </asp:TableRow>
</asp:Table>
于 2013-09-04T10:10:25.593 に答える