2009-09-22 61 views
0

我有一個母版頁,有兩個ContentPlaceHolders使用窗體runat =具有母版頁的服務器的問題?

我有一個使用此母版頁的默認page.aspx。

在默認頁面ContentHolder有一個TreeView而另一個有GridView

現在我需要將它們都顯示在一起,都需要<form runat="server">

但問題是,我不能在一個頁面中有兩個<form runat="server">的實例。

我試圖把<form runat="server">母版頁上,但隨後TreeViewGridView功能停止工作.....

請幫我一下,我能做些什麼來解決這個問題。

頁文件:

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="GridViewPg1.aspx.cs" Inherits="GridViewPg1" %> 

<%@ Register assembly="obout_Grid_NET" namespace="Obout.Grid" tagprefix="cc1" %> 

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> 
    <form id="form1" runat="server"> 
    <asp:Panel ID="Panel1" runat="server" ScrollBars="Vertical"> 

    <a style="color: #000000; font-weight: bold;">SumooHServer</a> 
     <p>&nbsp;<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
      ConnectionString="<%$ ConnectionStrings:SumooHAgentDBConnectionString %>" 
      SelectCommand="SELECT DISTINCT [MachineGroupName], [MachineGroupID] FROM [MachineGroups]"> 
     </asp:SqlDataSource> 
     <asp:SqlDataSource ID="SqlDataSource2" runat="server" 
      ConnectionString="<%$ ConnectionStrings:SumooHAgentDBConnectionString %>" 
      SelectCommand="SELECT DISTINCT [PolicyID], [PolicyName] FROM [Policies]"> 
     </asp:SqlDataSource> 
     <asp:TreeView ID="TreeView2" runat="server" 
      ontreenodepopulate="TreeView2_TreeNodePopulate"> 
      <Nodes> 
       <asp:TreeNode NavigateUrl="~/GridViewPg1.aspx" PopulateOnDemand="True" 
        Text="Machine Group" Value="Machine Group"></asp:TreeNode> 
      </Nodes> 
     </asp:TreeView> 
     <asp:TreeView ID="TreeView3" runat="server" 
      ontreenodepopulate="TreeView3_TreeNodePopulate"> 
      <Nodes> 
       <asp:TreeNode PopulateOnDemand="True" Text="Policies" Value="Policies"> 
       </asp:TreeNode> 
      </Nodes> 
     </asp:TreeView> 
     </p></asp:Panel> 
</form> 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server"> 

<asp:Panel ID="Panel2" runat="server" ScrollBars="None" Width="100%"> 
    <cc1:Grid ID="Grid1" runat="server" AllowFiltering="True" 
    AllowGrouping="True" DataSourceID="SqlDataSource3"> 
    </cc1:Grid> 
    <asp:SqlDataSource ID="SqlDataSource3" runat="server" 
    ConnectionString="<%$ ConnectionStrings:SumooHAgentDBConnectionString %>" 
    SelectCommand="SELECT * FROM [MachineGroups]"></asp:SqlDataSource> 
</asp:Panel> 

</asp:Content> 

母版文件:

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %> 

<!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> 
<title>SumooH</title> 
<meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
<link rel="stylesheet" type="text/css" href="style.css" /> 
</head> 

<body> 

    <div id="wrapper"> 
    <div id="header" 
      style="border-bottom-style: solid; border-bottom-color: #0000FF; border-bottom-width: medium"> 
    </div> 

    <div id="left-content" 
      style="border-right: thin ridge #000000; top: 104px;"> 

      <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"> 

     </asp:ContentPlaceHolder> 
    </div> 
    <div id="content-wrapper"> 
     <div id="content-inner"> 


     <asp:ContentPlaceHolder id="ContentPlaceHolder2" runat="server"> 

     </asp:ContentPlaceHolder> 


     </div> 
    <div id="footer"> 
     <p>&nbsp;</p> 
    </div> 
    </div> 


    </div> 



</body> 
</html> 
+0

請說明你的問題;這是無法理解的 – jagprinderdeep 2009-09-22 20:20:28

+0

問題是我無法得到treeview和gridview不能在一起顯示 – user175084 2009-09-22 20:21:58

+0

代碼是有幫助的... – TJMonk15 2009-09-22 20:24:14

回答

5

你說TreeView和GridView控件的功能 「停止工作」 的時候,<form runat="server">是在母版頁 - 但如果做了兩表單(一個在主頁面,一個在頁面上使用主頁面)不起作用,然而在技術上它不是以任何方式工作。

使用母版頁的ASP.NET 2.0+的正確用法是將表單標籤放置在母版頁中。使用主站的頁面(如果連接正確)不需要表單標籤 - 它們將從主站獲取標籤。我今天上午部署的網絡應用程序就是這樣工作的。 :)

我猜測,實際上有一個代碼問題埋在頁面本身導致TreeView和GridView無法正常執行表單標籤正常工作。

編輯

需要明確的是,母版頁必須有<form runat="server">,所有其他控件& HTML需要,佔位符,並關閉</form>標籤。

使用主站的頁面根本不能有任何<form runat="server">標籤,尤其是不會有關閉</form>標籤。

這樣做,應該沒有問題。

+0

不...如果我運行然後單獨他們工作完美..所以代碼很好.. – user175084 2009-09-22 20:31:16

+0

我已經張貼.aspx頁面,如果你想我可以張貼母版頁太多,如果這有助於反正...謝謝 – user175084 2009-09-22 20:32:35

+0

我試過,但正如我告訴你的treeview控件和gridviewcontrol功能停止工作..... 這就是爲什麼我感到困惑,該怎麼辦... – user175084 2009-09-22 20:52:32

1

您的母版頁應包含表單元素,並在其底部關閉元素。

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %> 

<!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> 
<title>SumooH</title> 
<meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
<link rel="stylesheet" type="text/css" href="style.css" /> 
</head> 
<body> 
<form id="form1" runat="server"> 
    <div> 
     <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server" /> 
    </div> 
    <div> 
     <asp:ContentPlaceHolder id="ContentPlaceHolder2" runat="server" /> 
    </div> 
</form> 
</body> 

您的內容頁面不應包含用於您的目的的任何表單元素。

+0

我做了同樣的事情,但是當我這樣做時,gridview和treeview功能停止工作。爲什麼會發生......當我把表格放在masterpage中時,我從其他所有頁面中刪除表格... – user175084 2009-09-22 21:49:47

+0

我想你可能還有其他的事情發生。 – 2009-09-24 02:07:52