【发布时间】:2016-12-21 19:32:00
【问题描述】:
我有一些这样的代码:
asp.net
<div id="divGrid" style='width:920px; height:430px; overflow:auto'>
<asp:DataGrid ID="DataGrid_AuditSearch" runat="server"
AllowPaging="True" AllowSorting="True" CellPadding="4" ForeColor="#333333" GridLines="None"
OnCancelCommand="DataGrid_AuditSearch_CancelCommand"
OnUpdateCommand="DataGrid_AuditSearch_UpdateCommand"
OnEditCommand="DataGrid_AuditSearch_EditCommand">
<AlternatingItemStyle Font-Bold="False" Font-Italic="False"
Font-Overline="False" Font-Strikeout="False" Font-Underline="False" />
<EditItemStyle BackColor="#999999" Font-Bold="False" Font-Italic="False"
Font-Overline="False" Font-Strikeout="False" Font-Underline="False" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="False" Font-Italic="False"
Font-Overline="False" Font-Strikeout="False" Font-Underline="False" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="False" Font-Italic="False"
Font-Overline="False" Font-Strikeout="False" Font-Underline="False" />
<PagerStyle BackColor="#5D7B9D" Font-Bold="False" Font-Italic="False"
Font-Overline="False" Font-Strikeout="False" Font-Underline="False" />
<SelectedItemStyle BackColor="#E2DED6" Font-Bold="False" Font-Italic="False"
Font-Overline="False" Font-Strikeout="False" Font-Underline="False" />
<Columns>
<asp:EditCommandColumn ButtonType="PushButton" CancelText="Cancel"
EditText="Select" UpdateText="Update"></asp:EditCommandColumn>
</Columns>
</asp:DataGrid>
<asp:Label ID="lblEmpty" runat="server" Visible="false" Style="font-weight:bold; font-size:large;"></asp:Label>
</div>
C#:
public void Show_Data(int AuditID)
{
try
{
OracleConnection conn = GetConnection();
{
conn.ConnectionString = ConfigurationManager.ConnectionStrings["ConnCST"].ToString();
OracleCommand cmd3 = new OracleCommand();
cmd3.Connection = conn;
sqlquery2 = "SELECT * from MyTable";
cmd3.CommandText = sqlquery2;
var SearchAdapter = new OracleDataAdapter(cmd3);
var ds = new DataSet();
SearchAdapter.Fill(ds);
// Perform the binding.
DataGrid_AuditSearch.DataSource = ds;
DataGrid_AuditSearch.DataBind();
if (DataGrid_AuditSearch.Items.Count < 1)
{
lblEmpty.Visible = true;
lblEmpty.Text = "There is no data to display";
}
else
{
lblEmpty.Visible = false;
}
//DataGrid_AuditSearch.Columns[3].Visible = false;
//DataGrid_AuditSearch.Columns[1].Visible = false;
}
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
相当无聊,通用的东西。所有字段都是基于绑定生成的。
但是,我希望能够访问 2 个字段(因为我需要数据),但我不想在屏幕上显示。有没有办法“动态地”做到这一点?在那里,我不想明确命名我想要显示的所有字段以及按什么顺序显示。
我尝试在 DataBind 命令之后添加它,但它没有做任何事情:
DataGrid_AuditSearch.Columns[3].Visible = false;
DataGrid_AuditSearch.Columns[1].Visible = false;
【问题讨论】:
-
您没有任何要隐藏的列,除了 EditCommandColumn,它是 DataGrid_AuditSearch.Columns[0].Visible = false;
-
嗯,这不是真的。当我运行该代码时,会显示 7 个字段。 EditCommandColumn 是一个按钮,网格也有从数据适配器引入的 6 个字段。 是的,这就是我用来填充它的所有代码。
-
显示创建列的代码。
-
就是所有代码。在 C# 应用程序中弹出它并自行测试。我从未在数据网格中指定了列。好吧,有一次我在使用 Net Advantage 工具,但从来没有在使用 VS 数据网格时。
-
好的,我编辑了它。就是这样。它在 Page_Load 上调用。