我有一个带有多个模板字段(用于下拉列表)的网格视图,如果我将其放置在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()
点击这里是关于它的更多信息。