在jquery模式对话框中使用asp:gridview和添加新行按钮

在jquery模式对话框中使用asp:gridview和添加新行按钮,jquery,asp.net,gridview,Jquery,Asp.net,Gridview,我有一个带有多个模板字段(用于下拉列表)的网格视图,如果我将其放置在我用作模式对话框的DIV之外,它就可以正常工作。 网格有onrowdatabound和OnRowDeleting事件,另外还有一个按钮,用于向网格添加新行。当我试图将此网格移动到模式对话框时,“添加”按钮停止工作。点击事件以代码隐藏方式编码,不会触发。有人能帮我理解我该怎么处理吗? 任何帮助都将不胜感激。先谢谢你 <div id="dialog" > <asp:GridView ID="grPlan" run

我有一个带有多个模板字段(用于下拉列表)的网格视图,如果我将其放置在我用作模式对话框的DIV之外,它就可以正常工作。 网格有onrowdatabound和OnRowDeleting事件,另外还有一个按钮,用于向网格添加新行。当我试图将此网格移动到模式对话框时,“添加”按钮停止工作。点击事件以代码隐藏方式编码,不会触发。有人能帮我理解我该怎么处理吗? 任何帮助都将不胜感激。先谢谢你

<div id="dialog" >

<asp:GridView ID="grPlan" runat="server" 
            ShowFooter="True" 
            AutoGenerateColumns="False"
            CellPadding="4" ForeColor="#333333" 
            GridLines="None"
            onrowdatabound = "GridView_RowDataBound"
            OnRowDeleting = "GridView_RowDeleting" >
    <Columns>
        <asp:BoundField HeaderText="ID" DataField="id" />
        <asp:TemplateField HeaderText="Program>">
            <ItemTemplate >
                <asp:DropDownList ID="ddlProgModal2" runat="server" AppendDataBoundItems="true" AutoPostBack="false" DataTextField="Prog" 
    DataValueField="ProgID" />
            </ItemTemplate >
        </asp:TemplateField>
        <asp:TemplateField HeaderText="EF">
            <ItemTemplate >
                <asp:DropDownList ID="ddlAnneeFiscaleModal2"  DataTextField="EtendueLong" DataValueField="EtendueLong" runat="server" 
                AppendDataBoundItems="true" AutoPostBack="false"/>
            </ItemTemplate >
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Approbations">
            <ItemTemplate >
                <asp:DropDownList ID="ddlApprobationModal2" runat="server" AppendDataBoundItems="true" AutoPostBack="false" 
    DataTextField="Approb" DataValueField="ApprobationID"/>
            </ItemTemplate >
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Fonds">
            <ItemTemplate >
                <asp:TextBox ID="txtFondsModal2" runat="server" AutoPostBack="false" MaxLength="15" Width = "120" onkeypress="return 
    validateFloatKeyPress(this,event);" />
            </ItemTemplate >
            <FooterStyle HorizontalAlign="Right" />
            <FooterTemplate>
                <asp:Button ID="ButtonAdd" runat="server" Text="Add" OnClick="ButtonAdd_Click" />            
            </FooterTemplate>
        </asp:TemplateField>
        <asp:CommandField ShowDeleteButton="True" />

    </Columns>
    <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
    <RowStyle BackColor="#EFF3FB" />
    <EditRowStyle BackColor="#2461BF" />
    <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
    <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
    <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="Black" />
    <AlternatingRowStyle BackColor="White" />

</asp:GridView>
</div>

$(“#对话框”)。对话框({ 自动打开:错误, 莫代尔:错, 宽度:600, 身高:520, 可调整大小:false, closeOnEscape:错误, 打开:功能(事件、用户界面){ //调试器; $(“.ui对话框标题栏关闭”).hide(); $('.ui dialog').css(“左”,“400px”); $('.ui dialog').css(“top”,“300px”); $('.ui dialog').css(“位置”、“绝对”); }, 标题:“”, 按钮:{ 取消:函数(){ $(this.dialog('close'); }, “确定”:函数(){ $(this.dialog('close'); 返回true; } }
});

有三种方法可以做你想做的事

1) 将
gridview
包装在
UpdatePanel
中,然后将
PostbackTrigger
设置为添加按钮控件

2) 您可以使用
gridview.row命令
事件。它处理
gridview
单元格中所有与按钮相关的事件


3) 您可以使用
jquery
强制按钮上的
postback
,使用
\uuu dopostback()

HelloThank非常感谢您的回答。我已经尝试了第一个,因为它看起来很简单-但它不起作用我已经尝试了第一个(在前端添加了postbacktrigget,在使用脚本管理器尝试代码隐藏之后)。当我打开模态对话框并单击按钮时,没有出现任何错误。它不会从Jquery对话框触发click事件。第二个选择也不起作用。我的按钮不在gridview单元格中-它位于网格页脚中,或者可以放置在网格的另一侧。单击它会向网格中添加一个新行(带有模板字段),然后进行行绑定。第三个选项:我搞砸了。我浏览了这个示例,并在页面加载上添加了所有输入和函数uu doPostBack以及Request.Form[“uu EVENTTARGET”],但当我运行应用程序时,我在document.Form1.u EVENTTARGET.value=EVENTTARGET上遇到了一个错误。如果我的页面上没有标题或正文(它在Master中),而我的html在updatepanel/contentTemplate中)。我是否应该将此函数和Request.Form[“\uu EVENTTARGET”]移动到Master?非常感谢你的帮助。我最近刚开始使用jQuery,感觉很失落。