0

マークアップとデータソース (linq クエリ ストアド プロシージャ) の下にあるグリッド ビューがあり、削除と更新のコマンド フィールドを追加しましたが、このグリッド ビューの削除と更新が機能するまで、どのコードを追加する必要があるかわかりません。

<asp:GridView ID="GridViewDocuments_Search" runat="server" AutoGenerateColumns=False Visible="False" onrowcommand="GridViewDocuments_Search_RowCommand"  
  DataKeyNames="DocID" PageSize="100"  >
    <Columns>
    <asp:TemplateField HeaderText = "Details">
           <ItemTemplate>
      <asp:Button ID ="btn_Show" Text="Details" runat= "server" CommandName= "Details" CommandArgument='<%#
        Container.DataItemIndex%>' />
        </ItemTemplate>
            </asp:TemplateField>

        <asp:HyperLinkField  DataNavigateUrlFields="Docid,Transid" 
            DataNavigateUrlFormatString="~/DocResult.aspx?Docid={0}&TransID={1}"
            DataTextField="DocumentNo" HeaderText="Doc" />
        <asp:BoundField DataField="title" HeaderText="Title" SortExpression="title" />
        <asp:BoundField DataField="transmittal" HeaderText="transmittal" SortExpression="transmittal" />
        <asp:BoundField DataField="Docid" HeaderText="Docid" Visible="false" />
        <asp:CommandField ShowEditButton="True" />
        <asp:CommandField ShowDeleteButton="True" />
    </Columns>
</asp:GridView>


protected void btnSearch_Click(object sender, EventArgs e)
{
    _DataContext = new EDMSDataContext();
    var query = _DataContext.spQuickSearch(txtSearchKeywords.Text);
    GridViewDocuments.Visible = false;
    GridViewDocuments_Search.Visible = true;
    GridViewDocuments_Search.DataSource = query;
    GridViewDocuments_Search.DataBind();
}

ストアド プロシージャ spQuickSearch は次のようになります。

ALTER proc [dbo].[spQuickSearch]
@Searchtext varchar(50)=null

AS

 select DocId,TransId,DocumentNo,Title,TRANSMITTAL
from DocumentSum2
 where DocumentNo like '%'+@SearchText + '%'
 or Title like '%'+@SearchText + '%'
 or TRANSMITTAL like '%'+@SearchText + '%'
4

2 に答える 2

0

次のようなコマンドを処理できます。

    protected void GridViewDocuments_Search_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        string cmdArg = e.CommandArgument.ToString();
        switch (e.CommandName)
        {
            case "Details":
                //TODO: handle your Details command...
                break;
            case "Delete":
                //TODO: handle your Delete command...
                break;
        }
    }

必要な数のコマンドを追加できます (コントロールの CommandName プロパティ)。たとえば、別のボタンを追加して、次のように Delete CommandName を設定できます。

 <asp:Button ID ="btn_Delete" Text="Delete" runat= "server" CommandName= "Delete" CommandArgument='<%#
    Container.DataItemIndex%>' />

コマンドが完了したら、DataBind を呼び出してグリッドを更新できます。

GridViewDocuments_Search.DataBind();
于 2012-12-16T16:58:00.963 に答える
0

この例を確認してください

http://www.vkinfotek.com/gridview/gridview-commandfield.html

詳しくは

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.commandfield.showeditbutton.aspx

于 2012-12-16T17:07:41.640 に答える