這推動我瘋了,在過去幾次,但我一直捏造,並繼續前行。今天我想嘗試修復它!FormView控件佈局
我相當頻繁創建GridView
顯示數據和FormView
直接插入模式下對應於列在GridView
在InsertTemplate則控制,因此它看起來像FormView
是GridView
的只是一個空行等待新的數據錄入。這很好。
問題是,我永遠無法獲得FormView
中「列」(實際上只是文本框)的寬度,以對應上面GridView
中列的寬度。
在下面,你可以看到的例子,無論是GridView
和FormView
有100%的寬度,果然,當頁面呈現他們都是一模一樣的寬度(我給FormView
邊框簡單地檢查)。但是,即使FormView
中的文本框的寬度與GridView
中的列的寬度相同,它們也不會以這種方式顯示。文本框稍寬一些,當你到達最右邊的列時,累積效果意味着對齊結束。
我猜問題是事做邊框寬度或正在呈現一些其他隱藏的元素,但我無法弄清楚。我不得不說,對齊出來的數量似乎超過了邊界會影響事物的幾個像素。
<asp:GridView ID="gvTPR" runat="server" DataSourceID="SQLTPR" AutoGenerateColumns="false" DataMember="DefaultView" DataKeyNames="TPRID" Width="100%" >
<RowStyle HorizontalAlign="Center" />
<EditRowStyle BackColor="#ccffff" />
<HeaderStyle BackColor="#013b82" ForeColor="White" />
<Columns>
<asp:BoundField DataField="TPREnteredAt" HeaderText="Entered At" ReadOnly="True" SortExpression="TPREnteredAt" ItemStyle-Width="24%" ControlStyle-Width="90%" />
<asp:BoundField DataField="TPRTemp" HeaderText="Temp" ReadOnly="True" SortExpression="TPRTemp" ItemStyle-Width="12%" ControlStyle-Width="90%"/>
<asp:BoundField DataField="TPRPulse" HeaderText="Pulse" ReadOnly="True" SortExpression="TPRPulse" ItemStyle-Width="12%" ControlStyle-Width="90%"/>
<asp:BoundField DataField="TPRRespiration" HeaderText="Respiration" ReadOnly="True" SortExpression="TPRRespiration" ItemStyle-Width="12%" ControlStyle-Width="90%"/>
<asp:BoundField DataField="TPRPCV" HeaderText="PCV" ItemStyle-Width="12%" ControlStyle-Width="90%"/>
<asp:BoundField DataField="TPRTP" HeaderText="TP" ItemStyle-Width="12%" ControlStyle-Width="90%" />
<asp:CommandField ButtonType="Button" InsertVisible="False" ShowEditButton="True" ItemStyle-Width="16%" UpdateText="Save" ControlStyle-Width="60px" />
</Columns>
<EmptyDataTemplate>
No TPR records exist
</EmptyDataTemplate>
</asp:GridView>
<asp:FormView ID="fvTPR" runat="server" DataSourceID="SQLTPR" DefaultMode="Insert" Width="100%" >
<InsertItemTemplate>
<asp:textbox ID="lblEnteredAt" runat="server" Text="Will be added automatically" Width="24%" />
<asp:TextBox ID="txtTemp" runat="server" Text='<%# Bind("TPRTemp")%>' Width="12%" />
<asp:TextBox ID="txtPulse" runat="server" Text='<%# Bind("TPRPulse")%>' Width="12%" />
<asp:TextBox ID="txtRespiration" runat="server" Text='<%# Bind("TPRRespiration")%>' Width="12%" />
<asp:TextBox ID="txtPCV" runat="server" Text='<%# Bind("TPRPCV")%>' Width="12%" />
<asp:TextBox ID="txtTP" runat="server" Text='<%# Bind("TPRTP")%>' Width="12%" />
<asp:Button ID="btnAddTPR" runat="server" Text="Save" Width="5%" />
</InsertItemTemplate>
</asp:FormView>
這使得這樣的:
完美,謝謝!現在你提到它了,我想我以前做過這個,但是謝謝你提醒我這麼好! –
實際上,需要做更多的工作,因爲GridView控件不支持本地插入,但我可以自己弄清楚。 –