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



我有一个带有多个模板字段(用于下拉列表)的网格视图,如果我将其放置在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>

$("#对话框").对话框({autoOpen:false,模态:false,宽度:600,高度:520,可调整大小:false,closeOnEscape:false,open:函数(事件,ui){//调试器;$(".ui对话框标题栏关闭").hide();$('.ui-dialog').css("left","400px");$('.ui-dialog').css("top","300px");$('.ui-dialog').css("position","absolute");},title:",按钮:{取消:函数(){$(this).对话框("关闭");},"OK":函数(){$(this).对话框("关闭");返回true;}}});

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

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

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

3) 您可以使用jquery强制按钮上的postback使用__dopostback()点击这里是关于它的更多信息。

最新更新