我想知道有什么方法可以将GridView
从水平布局更改为垂直布局吗?
请帮助我解决此问题。无论如何,我可以通过CSS
或通过C#
代码获得所需的输出(如图所示)。 GridView
中的所有数据都是动态的。我比较新鲜,请帮帮我。
这是我的代码:
ASPX代码
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="ID">
<ItemTemplate>
<asp:Label
ID="lblID"
runat="server"
Text='<%#
Eval("ID") %>'
></asp:Label>
</ItemTemplate>
<ItemStyle />
</asp:TemplateField>
<asp:TemplateField HeaderText="Date">
<ItemTemplate>
<asp:Label
ID="lblDate_From"
runat="server"
Text='<%#
Eval("Date_From") %>'
></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox
ID="txtDate_From"
runat="server"
Text='<%#
Eval("Date_From") %>'
Width="140"
></asp:TextBox>
</EditItemTemplate>
<ItemStyle />
</asp:TemplateField>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:Label
ID="lblEmp_Name"
runat="server"
Text='<%#
Eval("EmpName") %>'
></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox
ID="txtEmpName"
runat="server"
Text='<%# Eval("EmpName") %>'
Width="140"
></asp:TextBox>
</EditItemTemplate>
<ItemStyle />
</asp:TemplateField>
<asp:TemplateField HeaderText="Employee_Designation">
<ItemTemplate>
<asp:Label
ID="lblEmpDesig"
runat="server"
Text='<%# Eval("EmpDesig") %>'
></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox
ID="txtEmpDesig"
runat="server"
Text='<%# Eval("EmpDesig") %>'
Width="140"
></asp:TextBox>
</EditItemTemplate>
<ItemStyle />
</asp:TemplateField>
</Columns>
</asp:GridView>
C#背后的代码
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.BindGrid();
}
}
private void BindGrid()
{
try
{
objlog.Action = "FetchEmp_Details";
objlog.StrName = "Stored_Proc_Emp";
dt = IncometaxDetails_Datalayer.GetData(objlog);
if (dt.Rows.Count > 0)
{
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
catch (Exception ex)
{
}
}
答案 0 :(得分:0)
您可以使用以下功能垂直转换数据并将其绑定到GridView
public DataSet FlipDataSet(DataSet my_DataSet)
{
DataSet ds = new DataSet();
foreach (DataTable dt in my_DataSet.Tables)
{
DataTable table = new DataTable();
for (int i = 0; i <= dt.Rows.Count; i++)
{
table.Columns.Add(Convert.ToString(i));
}
DataRow r = null;
for (int k = 0; k < dt.Columns.Count; k++)
{
r = table.NewRow();
r[0] = dt.Columns[k].ToString();
for (int j = 1; j <= dt.Rows.Count; j++)
r[j] = dt.Rows[j - 1][k];
table.Rows.Add(r);
}
ds.Tables.Add(table);
}
return ds;
}
在将数据绑定到GridView的地方,必须将DataSet
传递给您可以执行的功能:
DataSet ds = new DataSet();
if (dt.Rows.Count > 0)
{
GridView1.DataSource = FlipDataSet(ds.Tables.Add(dt));
GridView1.DataBind();
}
有关更多信息,您可以查看这篇文章Displaying vertical rows in a GridView