2014-10-03 94 views
0

我遇到了这个问题,我需要在表单标签内插入表单标签。我的母版页有我的HTML代码,其中包含表单标签内,我有一个的ContentPlaceHolder: 这是我的HTML页面:表单标签内的ASP.Net表单标签

<html> 
    <header> 
    //my code here. 
    </header> 

    <body> 
    <form> 
     <asp:ContentPlaceHolder ID="ContentPlaceHolder2" runat="server"></asp:ContentPlaceHolder> 
    </form> 
    </body> 
<html> 

我现在想要做这样的事情在我page.aspx: 页。 ASPX

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" runat="Server" defaultfocus="Submit"> 

    <form id="form1" runat="server"> 
    <div> 
     //my code here 
    </div> 
    </form> 

</asp:Content> 

错误我得到: 一页只能有一个服务器端Form标记。

经过大量的阅读和研究,我发现这是不可能的,但我还没有读过什么是解决方案,请告知一种方法/方法来解决这个问题。感谢您阅读我的问题。

这是我的代码现在page.aspx,但我的回发不工作:

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" runat="Server" defaultfocus="Submit"> 

     <div> 
     <span style ="font-family:Arial">Select Country : </span> 
     <asp:DropDownList ID="ddlCountry" runat="server" Enabled = "true" AutoPostBack = "true" OnSelectedIndexChanged="ddlCountry_SelectedIndexChanged"> 
     <asp:ListItem Text = "--Select Country--" Value = ""></asp:ListItem> 
     </asp:DropDownList> 
     <br /><br />   
    </div> 
</asp:Content> 

SAM, 我已将此添加到page.aspx:

<asp:DropDownList ID="DropDownList1" runat="server" Enabled = "true" AutoPostBack = "true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"> 
     <asp:ListItem Text = "--Select Country--" Value = "0"></asp:ListItem> 
     <asp:ListItem Text = "Sri Lanka" Value = "1"></asp:ListItem> 
     </asp:DropDownList> 

,并在我的c#文件,我有:

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    label1.Text = "you selected Sri Lanka"; 
} 

当我选择斯里兰卡时,什么也没有发生。

+1

请问为什么你需要*在页面和主页面中插入表格标签?它只是作为一个容器,还是有其他原因? – sh1rts 2014-10-03 04:43:49

+0

它只是一个容器。 – user3345212 2014-10-03 04:52:53

+0

如果您需要每页使用表单,请不要使用Masterpages和ContentPages。只需使用Web窗体(将项目添加到项目时可用) – Sam 2014-10-03 05:03:10

回答

0

在另一个服务器端form内不能有服务器端form。您应该从MasterPage继承您的页面,然后使用ContentPlaceHolder来保存您的页面特定控件。

E.g.你page.aspx看起来应该像这样

<%@ Page Title="My Page" Language="C#" MasterPageFile="~/MySite.Master" AutoEventWireup="true" CodeBehind="Page.aspx.cs" Inherits="Test._Page" %> 

<asp:Content runat="server" ID="MyContent" ContentPlaceHolderID="MyContent"> 
    <%-- Your controls --%> 
</asp:Content> 

如果您需要做的部分更新使用UpdatePanel

UPDATE

您必须添加超过10项触发OnSelectedIndexChanged事件的DropDownList控件

Eg

<asp:DropDownList ID="ddlCountry" runat="server" Enabled = "true" AutoPostBack = "true" OnSelectedIndexChanged="ddlCountry_SelectedIndexChanged"> 
     <asp:ListItem Text = "--Select Country--" Value = "0"></asp:ListItem> 
     <asp:ListItem Text = "Sri Lanka" Value = "1"></asp:ListItem> 
     </asp:DropDownList> 
+0

它不工作,但谢谢你尝试。 – user3345212 2014-10-03 05:31:43

+0

请找到我的新更新。谢谢! – user3345212 2014-10-03 05:34:50