我的ASP.Net webforms按钮没有触发?

时间:2013-08-02 22:50:28

标签: asp.net

我认为这会相对简单,但我在Site.Master页面上有一个简单的按钮,我想用它从网格中获取单元格信息,然后将其发布到文本框中。然而它似乎没有被解雇(没有击中断点)。我已经尝试清理解决方案并禁用CausesValidation。 Button1_Click功能也出现在按钮事件属性中的单击的下拉菜单下..

这是我表格的主要部分:

    <div id="logindisplay">
        <% Html.RenderPartial("LogOnUserControl"); %>
    </div> 

    <div id="menucontainer">

        <ul id="menu">              
            <li><%= Html.ActionLink("Home", "Index", "Home")%></li>
            <li><%= Html.ActionLink("About", "About", "Home")%></li>
        </ul>

    </div>
                 <asp:GridView ID="GridView1" runat="server" AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="Id" DataSourceID="SqlDataSource1">
                     <Columns>
                         <asp:BoundField DataField="Id" HeaderText="Id" InsertVisible="False" ReadOnly="True" SortExpression="Id" />
                         <asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
                         <asp:BoundField DataField="Director" HeaderText="Director" SortExpression="Director" />
                         <asp:BoundField DataField="DateReleased" HeaderText="DateReleased" SortExpression="DateReleased" />
                         <asp:TemplateField HeaderText="Select">
                             <ItemTemplate>
                                 <asp:CheckBox ID="CheckBox" runat="server" OnCheckedChanged="CheckBox1_CheckedChanged" CausesValidation="True" />
                             </ItemTemplate>
                         </asp:TemplateField>
                     </Columns>
                 </asp:GridView>

              <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT * FROM [Movies]"></asp:SqlDataSource>

              <asp:Button ID="Button1" runat="server" Text="Select Movies" OnClick="Button1_Click" OnClientClick="Button1_Click" CausesValidation="False" />

        <asp:TextBox ID="TextBox1"  Text="First Name" runat="server"></asp:TextBox>

    </form>

并且继承了我的小Master.Site.cs:

namespace MovieApp
{

    public partial class Site : System.Web.Mvc.ViewMasterPage
    {
        private System.Collections.Generic.LinkedList<GridViewRow> Selections;


        protected void Page_Load(object sender, EventArgs e)
        {
            int i;
            TextBox box = (form1.FindControl("TextBox1")) as TextBox;
            box.Text = "!!!";
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            int i = 0;
            GridView gView = (GridView)(form1.FindControl("GridView1")); 
            GridViewRow row = gView.Rows[0];

            TextBox box = (form1.FindControl("TextBox1")) as TextBox;
            box.Text= row.Cells[0].Text;


        }

    }
}

3 个答案:

答案 0 :(得分:2)

看起来你正在使用ASP.NET MVC。

你不能在ASP.NET MVC中使用WebControls或Control Events - 它与Web Forms相比使用了完全不同的编程范例,它唯一的共同点就是使用aspx / ascx文件来存储预先写好的HTML。

如果您想在操作中使用“按钮事件”工作流程,请在value=""集合中查找按钮的Request.Form属性。

答案 1 :(得分:0)

删除OnClientClick =“Button1_Click”
-OnClientClick用于调用客户端函数(javascript函数)

答案 2 :(得分:0)

您知道与Web应用程序相比,MVC中的编程方法完全不同。 在MVC视图中用于设计页面。这里..最好使用服务器控件的html按钮 按钮。 。无论你需要做什么......都应该在控制器类中定义([http post] ... ActionResult)。你实际上在混合代码。这不好......试试这种方式