通过使用资源文件 (.resx) 更改 gridview 的语言,布局不会保持不变
by changing language of gridview using resource file(.resx) the layout not remains the same
我有 GridView
默认 "English" 语言
当我使用 DropDownList
将语言更改为 "Urdu" 时,资源文件将语言更改为 "Urdu" 但单元格的对齐方式不会保持不变。
我认为是因为 "Urdu" 是 RTL 语言,这就是它改变布局的原因。
我想保留 GridView
的布局。谢谢
代码如下:
<asp:GridView DataKeyNames="id" Width="455px" ID="gvProducts" runat="server" AutoGenerateColumns="False" CssClass="grid" BackColor="White" BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px" CellPadding="3" DataSourceID="dsCandidate" GridLines="Horizontal" AutoGenerateDeleteButton="True" AutoGenerateEditButton="True" meta:resourcekey="gvProductsResource1">
<AlternatingRowStyle BackColor="#F7F7F7" />
<Columns>
<asp:BoundField DataField="id" HeaderText="Id" InsertVisible="False" ReadOnly="True" SortExpression="id" meta:resourcekey="BoundFieldResource1" />
<asp:BoundField DataField="name" HeaderText="Name" SortExpression="name" meta:resourcekey="BoundFieldResource2" />
<asp:TemplateField HeaderText="Qualification" meta:resourcekey="TemplateFieldResource1">
<ItemTemplate>
<asp:Label ID="lblQuali" runat="server" Text='<%# Eval("Q_Type") %>' meta:resourcekey="lblQualiResource1"></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="ddl" runat="server" DataSourceID="dsQualification" DataValueField="Q_Id" DataTextField="Q_Type" SelectedValue='<%# Bind("Q_Id") %>' meta:resourcekey="ddlResource1"></asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="address" HeaderText="Address" SortExpression="address" meta:resourcekey="BoundFieldResource3" />
<asp:CheckBoxField DataField="active" HeaderText="Active" SortExpression="active" meta:resourcekey="CheckBoxFieldResource1" />
</Columns>
<FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
<HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" />
<PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" />
<RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
<SortedAscendingCellStyle BackColor="#F4F4FD" />
<SortedAscendingHeaderStyle BackColor="#5A4C9D" />
<SortedDescendingCellStyle BackColor="#D8D8F0" />
<SortedDescendingHeaderStyle BackColor="#3E3277" />
</asp:GridView>
您可以set/align HeaderStyle-Width
或 ItemStyle-HorizontalAlign
到您所有的 GridView 模板。
<asp:BoundField HeaderStyle-Width="500px" ItemStyle-HorizontalAlign="Left" />
或者您可以在 RowDataBound
事件中动态执行,例如:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
e.Row.Cells[0].Width = Unit.Pixel(100);
e.Row.Cells[0].HorizontalAlign = HorizontalAlign.Left;
}
我有 GridView
默认 "English" 语言
当我使用 DropDownList
将语言更改为 "Urdu" 时,资源文件将语言更改为 "Urdu" 但单元格的对齐方式不会保持不变。
我认为是因为 "Urdu" 是 RTL 语言,这就是它改变布局的原因。
我想保留 GridView
的布局。谢谢
代码如下:
<asp:GridView DataKeyNames="id" Width="455px" ID="gvProducts" runat="server" AutoGenerateColumns="False" CssClass="grid" BackColor="White" BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px" CellPadding="3" DataSourceID="dsCandidate" GridLines="Horizontal" AutoGenerateDeleteButton="True" AutoGenerateEditButton="True" meta:resourcekey="gvProductsResource1">
<AlternatingRowStyle BackColor="#F7F7F7" />
<Columns>
<asp:BoundField DataField="id" HeaderText="Id" InsertVisible="False" ReadOnly="True" SortExpression="id" meta:resourcekey="BoundFieldResource1" />
<asp:BoundField DataField="name" HeaderText="Name" SortExpression="name" meta:resourcekey="BoundFieldResource2" />
<asp:TemplateField HeaderText="Qualification" meta:resourcekey="TemplateFieldResource1">
<ItemTemplate>
<asp:Label ID="lblQuali" runat="server" Text='<%# Eval("Q_Type") %>' meta:resourcekey="lblQualiResource1"></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="ddl" runat="server" DataSourceID="dsQualification" DataValueField="Q_Id" DataTextField="Q_Type" SelectedValue='<%# Bind("Q_Id") %>' meta:resourcekey="ddlResource1"></asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="address" HeaderText="Address" SortExpression="address" meta:resourcekey="BoundFieldResource3" />
<asp:CheckBoxField DataField="active" HeaderText="Active" SortExpression="active" meta:resourcekey="CheckBoxFieldResource1" />
</Columns>
<FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
<HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" />
<PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" />
<RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
<SortedAscendingCellStyle BackColor="#F4F4FD" />
<SortedAscendingHeaderStyle BackColor="#5A4C9D" />
<SortedDescendingCellStyle BackColor="#D8D8F0" />
<SortedDescendingHeaderStyle BackColor="#3E3277" />
</asp:GridView>
您可以set/align HeaderStyle-Width
或 ItemStyle-HorizontalAlign
到您所有的 GridView 模板。
<asp:BoundField HeaderStyle-Width="500px" ItemStyle-HorizontalAlign="Left" />
或者您可以在 RowDataBound
事件中动态执行,例如:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
e.Row.Cells[0].Width = Unit.Pixel(100);
e.Row.Cells[0].HorizontalAlign = HorizontalAlign.Left;
}