2017-09-20 1 views
0

Das ist mein Gridview, wenn die Seite geladen wird: enter image description hereASP.NET Gridview-Format ändert sich, wenn im Bearbeitungsmodus

Nun ist dies, wie es aussieht, wenn der Benutzer klickt auf die Schaltfläche Bearbeiten: enter image description here

Die Das GridView-Format sieht im Bearbeitungsmodus deutlich besser aus, weshalb ich versuche, das Design so zu bearbeiten, dass es immer so aussieht. Ich habe versucht, die Breite und Höhe im Rowstyle zu bearbeiten, aber die Einstellungen werden nur angewendet, wenn sie die Zellen größer machen, und ich möchte natürlich, dass sie kleiner sind. Ich bin auch nicht in der Lage, eine Methode zu finden oder zu schreiben, um die Zellen programmgesteuert zu ändern.

Hier ist der Code für das Gridview und seine SqlDataSource ist (ich die Update-Parameter für diesen Beitrag weggelassen):

<div style="overflow:scroll; width:1500px"> 
      <asp:GridView id="maintenanceGridView" runat="server" 
       DataSourceID="maintenanceDataSource" 
       AllowSorting="true" AllowPaging="true" PageSize="50" 
       OnRowEditing="maintenanceGridView_RowEditing" 
       OnRowUpdating="maintenanceGridView_RowUpdating" 
       OnRowCancelingEdit="maintenanceGridView_RowCancelingEdit" 
       OnRowDataBound="maintenanceGridView_RowDataBound" 
       AutoGenerateEditButton="true"> 
       <rowstyle backcolor="LightCyan"/> 
       <alternatingrowstyle backcolor="PaleTurquoise"/> 
       <EmptyDataTemplate> 
        <h3>No Records Found!!</h3> 
       </EmptyDataTemplate> 
      </asp:GridView> 
     </div> 
     <asp:SqlDataSource id="maintenanceDataSource" 
      DataSourceMode="DataSet" 
      SelectCommand="AMT_GetMaintenanceView" 
      UpdateCommand="AMT_UpdateMaintenance" 
      UpdateCommandType="StoredProcedure" 
      ConnectionString="<%$ ConnectionStrings:iandcInternDBConn %>" 
      runat="server"> 
      <UpdateParameters> 
      </UpdateParameters> 
     </asp:SqlDataSource> 
</div> 

Ich habe keine Ahnung, was das Gridview das Format zu ändern, verursacht. Ich habe versucht, nach dem Standard-CSS zu suchen, aber nichts gefunden, und die Entwicklerwerkzeuge von Internet Explorer sagen mir, dass das CSS im Bearbeitungsmodus genauso ist wie im Ansichtsmodus.

Jede Hilfe oder weitere Einblicke wird sehr geschätzt. Vielen Dank!

Antwort

0

Set Zellen Breite programmatisch in RowDataBound Ereignis als: eine kleine vorübergehende Lösung zu finden, indem sie immer zwingt die Gridview in den Bearbeitungsmodus in der ersten Reihe

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    e.Row.Cells[0].Width = Unit.Pixel(100); 
    e.Row.Cells[0].HorizontalAlign = HorizontalAlign.Left; 
} 
+0

ich diesen Code in einem for-Schleife setzen, so würde es gelten auf allen Zellen. Es hatte nur einen Effekt, wenn ich die Zellen größer als ihre aktuellen Werte machte. Danke für den Beitrag! –

0

ich in der Lage war; auch wenn die Benutzer versuchen, die Bearbeitung abzubrechen.

ich dies tun, indem Code zusätzlich zu den Page_Load und RowDataBound Ereignissen

protected void Page_Load(object sender, EventArgs e) 
{ 
     // Force the gridview into edit mode always becuase its formatting looks a million times better 
     GridView1.EditIndex = 0; 
} 

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
     // Default to edit mode 
     if (GridView1.EditIndex == -1) 
      GridView1.EditIndex = 0; 
} 
0

Versuche in Ihrem CSS etwas wie folgt ergänzt:

.GridViewEditRow input[type=text] { /*for text boxes use td for every cell*/ 
     width: 50px; 
    } 
Verwandte Themen