簡體   English   中英

從代碼隱藏更改母版頁上的DIV標簽高度

[英]Change the DIV tag height on master page from codebehind

我無法更改 母版頁div項目的背景顏色和高度。

我在default.aspx頁上有一個按鈕,它位於母版頁的“內部”。 我在default.aspx上具有<%@ MasterType ...元素,並具有一個稱為“ selectedPanel”的公共枚舉屬性。 當我單擊default.aspx頁面上的按鈕時,“ selectedPanel”屬性正在更改,但是瀏覽器上沒有任何反應。

當我調試時,“ selectedPanel”的屬性集{...}被很好地觸發。 在我看來,“ selectedPanel”屬性更改后,缺少一些“刷新”或類似內容。

頁面邏輯如下:單擊default.aspx->在母版頁上設置“ SelectedPanel”屬性->在母版頁上更改“ searchPlace” DIV的背景顏色。

我在這個網站上閱讀了所有其他問題,但是我的項目出了點問題...

Reg.Master頁面

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="reg.Master.cs" Inherits="Reg.Reg" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <link href="App_Themes/Default/reg.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />

<div id="container">

    <div id="searchPlace" runat="server">
        <%-- Search --%>
        <asp:ContentPlaceHolder ID="cphSearch" runat="server">
        </asp:ContentPlaceHolder>
    </div>

</div>
</form>    
</body>
</html>

Reg.Master.cs頁面

public enum panelItem
{
    simpleSearch,
    advancedSearch,
    newItem
}

我想在這里更改DIV背景顏色:

public panelItem selectedPanel
{
    set
    {
        if (value == panelItem.simpleSearch)
        {
            searchPlace.Style.Add(HtmlTextWriterStyle.BackgroundColor, "green");
        }
        else if (value == panelItem.advancedSearch)
        {
            searchPlace.Style.Add(HtmlTextWriterStyle.BackgroundColor, "black");
        }
    }
}

Reg.css文件

#searchPlace
 {
     float:left;
     top: 100px;
     width:800px;
     height:350px;
     padding-left: 10px;
     padding-right: 10px;
 }

Default.aspx

<%@ Page Title="Reg" Language="C#" MasterPageFile="~/reg.Master" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="Reg._default" %>
<%@ MasterType VirtualPath="~/reg.Master" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>

<asp:Content ID="cntSearch" ContentPlaceHolderID="cphSearch" runat="server">
<asp:UpdatePanel ID="updSearch" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
<ContentTemplate>
    <asp:Button ID="btnChangeColor" runat="server" onclick="changeColor" Text="Button" />
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>

Default.aspx.cs文件

protected void btnChangeColor_Click(object sender, EventArgs e)
{
    Master.selectedPanel = Reg.panelItem.simpleSearch;
}

問題出在Ajax updatePanel周圍。 我無法在updatePanel之外更新DIV(searchPlace)屬性。

母版頁:

<div id="container">
   <%-- Search --%>
   <asp:ContentPlaceHolder ID="cphSearch" runat="server">
   </asp:ContentPlaceHolder>
</div>

Default.aspx頁:

<asp:Content ID="cntSearch" ContentPlaceHolderID="cphSearch" runat="server">
<asp:UpdatePanel ID="updSearch" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
<ContentTemplate>
<div id="searchPlace" runat="server"> <-- DIV tag moved here
    <asp:Button ID="btnChangeColor" runat="server" onclick="changeColor" Text="Button" />
</div>
</ContentTemplate>
</asp:UpdatePanel>

Default.aspx.cs上的事件句柄

searchPlace.Style.Add(HtmlTextWriterStyle.Height, "300px");
searchPlace.Style.Add(HtmlTextWriterStyle.BackgroundColor, "Black");
updSearch.Update();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM