代码之家  ›  专栏  ›  技术社区  ›  JumpingJezza

用javascript隐藏Detailsview字段

  •  1
  • JumpingJezza  · 技术社区  · 15 年前

    <script type="text/javascript">
        function HideShowPromo(chk) {
            if (chk.checked == true) 
                //.style.display = 'block';
            else 
                //.style.display = 'none';
        }
    </script>
    
    <asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="false">
        <Fields>
            <asp:TemplateField HeaderText="Use Promotional Code:">
                <InsertItemTemplate>
                    <asp:CheckBox ID="cbUsePromo" runat="server" />
                </InsertItemTemplate>
                <EditItemTemplate>
                    <asp:CheckBox ID="cbUsePromo" runat="server" Checked='<%# Bind("_usePromo") %>' />
                </EditItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Promotional Code:">
                <InsertItemTemplate>
                    <asp:TextBox ID="txtPromoCode" runat="server" MaxLength="10"></asp:TextBox>
                </InsertItemTemplate>
                <EditItemTemplate>
                    <asp:TextBox ID="txtPromoCode" runat="server" Text='<%# Bind("_promo") %>' MaxLength="10"></asp:TextBox>
                </EditItemTemplate>
            </asp:TemplateField>
        </Fields>
    </asp:DetailsView>      
    

    以及背后的密码:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            DetailsView1.DefaultMode = DetailsViewMode.Insert;              
            ((CheckBox)DetailsView1.FindControl("cbUsePromo")).Attributes.Add("onclick", "HideShowPromo(this)");
        }
    }
    

    我可以选择“txtPromoCode”文本框并将其隐藏,但它会留下headertext。我想把整个场地都藏起来。

    1 回复  |  直到 15 年前
        1
  •  1
  •   Willem    15 年前

    您应该尝试隐藏整行,因此如果生成的html如下所示:

    <tr>
        <td>Header</td>
        <td><input id='txtPromoCode' /></td>
    </tr>
    

    使用javascript选择txtPromoCode并隐藏txtPromoCode.parentNode.parentNode(第一个父节点是 <td> ,第二个是 <tr> )