非常奇怪的问题:在aspx网页上提交后没有任何反应

时间:2011-06-10 10:30:57

标签: asp.net user-controls submit

测试:使用visual studio 2010的windows server 2008和使用visual studio 2008的windows vista。

出现了以下异常问题。

我有一个用户控件和网站,其中将显示控件。 如果我正在检查控制的单选按钮并点击提交,这也是在里面的控制中没有发生任何事情。没有要求服务器,只是沉默。

一切看起来都很好而标准,但我找不到问题。请帮忙,因为它很烦人!

usercontrol.ascx:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="EmployeeCategorizationControl.ascx.cs"
    Inherits="EmployeeCategorizationControl.EmployeeCategorizationControl" %>

<div id="categorizationOfEmployee">
<div>Categorization od Employee</div><br />
    <div id="firstCategory">
        <div style="float: left; width: 250px;">
            Is not a permanent employee</div>
        <div>
            <asp:RadioButtonList ID="YesNoIsNotPermanentEmployee" runat="server" RepeatDirection="Horizontal">
                <asp:ListItem Text="Yes" Value="1"></asp:ListItem>
                <asp:ListItem Text="No" Value="0"></asp:ListItem>
            </asp:RadioButtonList>
        </div>
    </div>
    <div id="secondCategory">
        <div style="float: left; width: 250px;">
            Is a fixed-term employee</div>
        <div>
            <asp:RadioButtonList ID="YesNoIsFixedTermEmployee" runat="server" RepeatDirection="Horizontal">
                <asp:ListItem Text="Yes" Value="1"></asp:ListItem>
                <asp:ListItem Text="No" Value="0"></asp:ListItem>
            </asp:RadioButtonList>
        </div>
    </div>
    <div id="thirdCategory">
        <div style="float: left;  width: 250px;">
            No external recruit</div>
        <div>
            <asp:RadioButtonList ID="YesNoExternalRecruit" runat="server" RepeatDirection="Horizontal">
                <asp:ListItem Text="Yes" Value="1"></asp:ListItem>
                <asp:ListItem Text="No" Value="0"></asp:ListItem>
            </asp:RadioButtonList>
        </div>
    </div>
    <div id="btCreate" style="margin-left: 200px; margin-top: 10px;">
        <asp:Button runat="server" Text="Create Checklist" ID="btCreateChecklist" />
    </div>
</div>

usercontrol.ascx.cs:

protected void Page_Load(object sender, EventArgs e)
        {
            btCreateChecklist.Click += new EventHandler(btCreateChecklist_Click);

        }

void btCreateChecklist_Click(object sender, EventArgs e)
        {
            ValueOfIsNotPermanentEmployee = YesNoIsNotPermanentEmployee.Text;
            ValueOfIsFixedTermEmployee = YesNoIsFixedTermEmployee.Text;
            ValueOfNoExternalRecruit = YesNoExternalRecruit.Text;
            UserCategoryID = ValueOfIsNotPermanentEmployee + ValueOfIsFixedTermEmployee + ValueOfNoExternalRecruit;
        }

的Default.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="EmployeeCategorizationControl._Default" %>
<%@ Register TagPrefix="UserControl" TagName="EmployeeCategorizationControl" Src="~/EmployeeCategorizationControl.ascx" %>

<!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">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <UserControl:EmployeeCategorizationControl runat="server" />
    </div>
    </form>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

此代码看起来像我看到的那样完美。我已经将您的代码原样移植到本地应用程序中(更改名称空间以消除编译错误)并且它的回发很好。但是,除了设置几个变量(您没有解释它们的作用或与之相关)之外,您的事件不会执行任何操作。你确定它没有回复吗?此页面足够小,回发可能甚至不会导致屏幕闪烁(因为没有实际操作正在进行)。您应该在事件方法中添加一些可见的操作,例如更改标签的文本或按钮的BackColor

答案 1 :(得分:0)

如果您有AutoEventWireup="true",则无需:

btCreateChecklist.Click += new EventHandler(btCreateChecklist_Click);

将其设置为false或删除上述声明。