0

特定の行を選択して削除するための2つの画像アイコンを配置する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

すべての助けを借りて、最終的な解決策は次のとおりです。

                 <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 に答える
0

グリッドでイベントが発生するたびにバインドする必要があります。

于 2013-04-09T09:07:16.760 に答える