2012-12-16 38 views
0

我有一个网格视图与下面的标记及以下datasourse(存储查询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 '%'[email protected] + '%' 
or Title like '%'[email protected] + '%' 
or TRANSMITTAL like '%'[email protected] + '%' 

回答

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属性控制)。例如,您可以添加另一个按钮,设置删除的CommandName这样的:

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

命令完成后,你可以调用DataBind刷新网格:

GridViewDocuments_Search.DataBind();