2012-07-25 51 views
0

我有一个可以正常工作的gridview。但是,无论何时单击命令按钮,它都会进入编辑模式。无论如何阻止这个?如何禁用gridview中的editmode?

<asp:GridView id="grv_purchaseOrder" runat="server" AutoGenerateColumns="False" 
    onrowdatabound="grv_purchaseOrder_RowDataBound" ShowFooter="True" 
    EmptyDataText="No Purchase Order were found." DataKeyNames="purchaseOrderID" 
onrowcommand="grv_purchaseOrder_RowCommand" 
    onrowediting="grv_purchaseOrder_RowEditing"> 
    <Columns> 
     <asp:TemplateField ShowHeader="False"> 
      <ItemTemplate> 
       <asp:Button ID="but_purchaseOrderDetails" runat="server" CommandArgument='<%# DataBinder.Eval(Container, "RowIndex") %>' 
        CausesValidation="false" CommandName="edit" Text="Detail" /> 
      </ItemTemplate> 
      <FooterTemplate> 
       <asp:Button ID="but_newOrderDetails" runat="server" CausesValidation="false" commandargument="0" 
        CommandName="new" Text="New" /> 
      </FooterTemplate> 
     </asp:TemplateField> 
     <asp:BoundField DataField="name" HeaderText="Name" /> 
     <asp:TemplateField HeaderText="Date"> 
      <ItemTemplate> 
       <asp:Label ID="lbl_dateCreated" runat="server" Text='<%# Bind("dateCreated") %>'></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:BoundField DataField="purchaseOrderStatus" HeaderText="Status" /> 
    </Columns> 
</asp:GridView> 

具体来说,but_newOrderDetails会将gridview置于编辑模式。

这里是什么是命令行事件处理中:

 string currentCommand = e.CommandName; 
     ClientScriptManager cs = Page.ClientScript; 
     int rowIndex = int.Parse(e.CommandArgument.ToString()); 
     string purchaseOrderID = grv_purchaseOrder.DataKeys[rowIndex]["purchaseOrderID"].ToString(); 
     if (currentCommand == "edit" || currentCommand == "new") { 
      cs.RegisterStartupScript(this.GetType(), "popupScript", "window.open('PurchaseOrderDetail.aspx?purchaseOrderID=" + purchaseOrderID + "','_blank');", true); 
     } 

我也试图把grv_purchaseOrder.EditIndex = -1;在rowEditing事件中,但它没有做任何事情。

+0

是什么在你grv_purchaseOrder_RowCommand事件方法? – 2012-07-25 17:36:38

+0

我正在通过javascript打开一个新标签页 – Bill 2012-07-25 17:37:58

+0

这里是一个很好的例子,您可以关注isEditMode和IsInEditMode http://www.highoncoding.com/Articles/219_GridView_All_Rows_in_Edit_Mode.aspx您还可以查看http:// csharpdotnetfreak。 blogspot.com/2009/05/edit-multiple-records-gridview-checkbox.html – 2012-07-25 17:49:55

回答

0
<asp:gridview id="GridView1" runat="server"> 
     <columns> 
       <asp:templatefield> 
         <itemtemplate> 
           <asp:linkbutton id="btnEdit" runat="server" commandname="Edit" enabled='<%# !(Eval("Status").ToString().Equals("Closed") || Eval("Status").ToString().Equals("Cancelled")) %>' 
text="Edit" /> 
         </itemtemplate> 
       </asp:templatefield> 
     </columns> 
</asp:gridview> 
+0

“状态”是什么意思?这是一个内置的字段为gridview或数据库字段?如何禁用gridview的行编辑模式? PLZ帮助我:( – 2015-09-30 05:18:26

-1

ü在gridview_RowEditing事件处理justwrite验证码:

protected void grvMain_RowEditing(object sender, GridViewEditEventArgs e) 
{ 
    grvMain.EditIndex = -1; 
    FillGrid(); 
} 
相关问题