2009-09-22 4 views
0

J'ai une page maître avec deux ContentPlaceHolders.Problème lors de l'utilisation du formulaire runat = serveur avec pages maîtres?

J'ai un page.aspx par défaut qui utilise cette page maître.

Dans la page par défaut un ContentHolder a TreeView et l'autre a GridView.

Maintenant, j'ai besoin d'afficher les deux ensemble et les deux exigent <form runat="server">.

Mais le problème est que je ne peux pas avoir deux instances de <form runat="server"> dans une seule page.

J'ai essayé de mettre <form runat="server"> sur la page principale mais la TreeView et GridView fonctionnalité cesse de fonctionner .....

S'il vous plaît aidez-moi à ce que je peux faire pour résoudre ce problème.

page Fichier:

<%@ 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> 

fichier Masterpage:

<%@ 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

Veuillez clarifier votre problème; ceci est inintelligible – jagprinderdeep

+0

Le problème est que je ne peux pas obtenir le treeview et le gridview ne fonctionnent pas lorsqu'ils sont affichés ensemble – user175084

+0

le code est utile ... – TJMonk15

Répondre

5

Vous dites que le TreeView et la fonctionnalité GridView "cesse de fonctionner" lorsque le <form runat="server"> est dans la page principale - mais si cela deux les formulaires (un dans le master, un dans la page utilisant le master) ne fonctionnent pas, alors techniquement cela ne fonctionne pas de toute façon.

L'idiome correct pour ASP.NET 2.0+ à l'aide des pages maîtres consiste à placer l'étiquette de formulaire dans la page maître. Les pages utilisant le maître, si elles sont câblées correctement, n'auront pas besoin d'étiquettes de forme - elles recevront l'étiquette de leur maître. L'application Web que je viens de déployer ce matin a fonctionné de cette façon. :)

Je suppose qu'il existe réellement un problème de code enfoui dans la page elle-même, provoquant l'arrêt de TreeView et GridView une fois que les balises de formulaire sont implémentées correctement.

EDIT

Pour être clair, la page maître doit avoir <form runat="server">, tous les autres contrôles & HTML nécessaires, les espaces réservés, et une balise de fermeture </form>.

Les pages utilisant le maître ne peuvent pas avoir de balises <form runat="server">, et surtout pas de balise </form> de fermeture.

Effectué de cette façon, il ne devrait pas y avoir de problèmes.

+0

non ... si je cours puis séparément ils fonctionnent parfaitement .. donc le code est bien .. – user175084

+0

j'ai posté la page .aspx si vous voulez je peux poster la page maître aussi, si cela aide en tout cas ... merci – user175084

+0

J'ai essayé cela mais comme je vous l'ai dit le contrôle treeview et la fonctionnalité gridviewcontrol cesse de fonctionner ..... Ce pourquoi je suis confus quant à ce qu'il faut faire ... – user175084

1

Votre page maître doit contenir l'élément de formulaire, avec l'élément de fermeture en bas.

<%@ 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> 

Vos pages de contenu ne doivent contenir aucun élément de formulaire pour vos besoins.

+0

J'ai fait la même chose en premier, mais quand je fais cela, la fonctionnalité gridview et treeview cesse de fonctionner. pourquoi cela arrive-t-il ... et quand je mets le formulaire en masterpage je supprime le formulaire de toutes les autres pages ... – user175084

+0

Je pense que vous pouvez avoir quelque chose d'autre alors. –

Questions connexes