0

マスターページのdivアイテムの背景色と高さを変更できません。

マスターページの「内部」にあるdefault.aspxページにボタンがあります。default.aspxに<%@ MasterType ...要素があり、「selectedPanel」というパブリック列挙型プロパティがあります。default.aspxページのボタンをクリックすると、「selectedPanel」プロパティが変更されますが、ブラウザで何も起こりません。

「selectedPanel」のプロパティset{...}は、デバッグ時に正常に起動されます。「selectedPanel」プロパティが変更された後、「refresh」または同様のものが欠落しているように見えます。

ページロジックは次のとおりです。default.aspxをクリックします->マスターページの「SelectedPanel」プロパティを設定します->マスターページの「searchPlace」DIVの背景色を変更します。

このサイトで他のすべての質問を読みましたが、私のプロジェクトに何か問題があります...

登録マスターページ

<%@ 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;
}
4

1 に答える 1

0

問題は 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();
于 2012-07-31T09:22:10.640 に答える