2012-07-25 2 views
0

J'ai un gridview qui fonctionne bien. Mais il passe en mode édition chaque fois que l'on clique sur le bouton de commande. Y a-t-il un moyen d'arrêter cela?Comment désactiver editmode dans gridview?

<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> 

Plus précisément, le but_newOrderDetails met la grille en mode d'édition.

voici ce qui est à l'intérieur du gestionnaire d'événements de commande Row:

 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); 
     } 

J'essaie aussi de mettre grv_purchaseOrder.EditIndex = -1; dans l'événement rowEditing, mais cela ne fait rien.

+0

Ce qui est dans votre méthode d'événement grv_purchaseOrder_RowCommand? –

+0

J'ouvre un nouvel onglet via javascript – Bill

+0

Voici un très bon exemple, vous pouvez vous concentrer sur isEditMode et IsInEditMode http://www.highoncoding.com/Articles/219_GridView_All_Rows_in_Edit_Mode.aspx Vous pouvez également regarder http: // csharpdotnetfreak. blogspot.com/2009/05/edit-multiple-records-gridview-checkbox.html –

Répondre

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

quoi de "statut" ?? est-ce un champ de construction pour gridview ou un champ de base de données? comment désactiver le mode d'édition de ligne pour gridview ?? plz m'aider :( –

-1

u JustWrite ce code dans gridview_RowEditing eventHandler:

protected void grvMain_RowEditing(object sender, GridViewEditEventArgs e) 
{ 
    grvMain.EditIndex = -1; 
    FillGrid(); 
} 
Questions connexes