表单标记内的ASP.Net表单标记

时间:2014-10-03 04:34:29

标签: c# asp.net forms

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

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

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

现在我想在我的page.aspx中做这样的事情: page.aspx

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

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

</asp:Content>

我得到的错误: 页面只能有一个服务器端表单标记。

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

这是我现在在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 个答案:

答案 0 :(得分: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

<强>更新

您必须添加多个项才能触发DropDownList控件的OnSelectedIndexChanged事件

E.g。

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