0

我有一个 Gridview,它放置了两个用于选择和删除特定行的图像图标。网格绑定到 jquery 数据表,但是当我选择图像来选择行时,默认行为是强制回发,这会导致网格松动数据表设置。

知道如何在单击任一按钮时保留数据表吗?

<asp:GridView ID="grdMessageDups" runat="server" DataSourceID="sourceDuplicates"
     AutoGenerateColumns="false"> 
    <Columns>
        <asp:CommandField ShowSelectButton="true" ButtonType="Image"
             SelectImageUrl="~/images/icn_alert_success.png"/>
        <asp:ButtonField ButtonType="Image" 
             ImageUrl="~/images/icn_alert_error.png" />
        <asp:BoundField DataField="MsgDateDetailDuplicatesID" Visible="false" />
        <asp:BoundField  DataField="1" HeaderText="Heading 1" />
        <asp:BoundField  DataField="2" HeaderText="Heading 2" />
        <asp:BoundField  DataField="3" HeaderText="Heading 3" />
     </Columns>
 </asp:GridView>

然后 DataTable JQuery 的东西是:

                var oTable = $('#grdMessageDetail').dataTable({
                "aLengthMenu": [[10, 25, 50, 100, -1], [10, 25, 50, 100, "ALL"]],
                'asStripClasses': null,
                "iDisplayLength": 10,
                "bJQueryUI": true,
                "bFilter": true,
                "bAutoWidth": false,
                "bProcessing": true,
                "bServerSide": false,
                "sDom": 'RC<"H"lfr>t<"F"ip>',

                //Scrolling .......
                "sScrollY": "250px",
                "sScrollX": "100%",
                "sScrollXInner": "100%",
                "bScrollCollapse": true,
                });

后面代码中的代码是:

public static void MakeAccessible(GridView grid)
{
    if (grid.Rows.Count <= 0) return;
    grid.UseAccessibleHeader = true;
    grid.HeaderRow.TableSection = TableRowSection.TableHeader;
    if (grid.ShowFooter)
        grid.FooterRow.TableSection = TableRowSection.TableFooter;
}
protected override void OnPreRender(EventArgs e)
{
    base.OnPreRender(e);
    MakeAccessible(grdMessageDups);
} 
4

3 回答 3

0

每次在网格上发生事件时,您都需要绑定它..

于 2013-04-09T09:07:16.760 回答
0

选择行所做的是客户端事件(java-script 或 jQuery)在这两种情况下都使用

return false;

如果在(java-script 或 jQuery)中调用任何函数

编辑

你可以更换

<asp:ButtonField ButtonType="Image" 
         ImageUrl="~/images/icn_alert_error.png" />

使用模板归档并在其中放置图像而不是图像按钮,如下所示

 <asp:TemplateField>
      <ItemTemplate>
          <img src="~/images/icn_alert_error.png" />    
       </ItemTemplate>
  </asp:TemplateField>
于 2013-04-09T09:09:00.207 回答
0

在所有最终解决方案的帮助下:

                 <asp:TemplateField>
                     <ItemTemplate>
                       <a href="#" id="selectImage">
                        <img src="images/icn_alert_success.png" /></a>
                      </ItemTemplate>
                  </asp:TemplateField>

然后这个 JQuery 代码:

                  $('[id$=selectImage]').click(function (evt) {
                  evt.preventDefault();
                 alert("item selected");
                  });

所以,现在,我需要执行获取所选行的 KeyValue,我们是黄金。

于 2013-04-09T12:13:37.660 回答