#c# #asp.net #datagrid
#c# #asp.net #сетка данных
Вопрос:
Я хочу, чтобы в моем DataGrid
объекте были связанные столбцы. Код работал нормально до того, как я их добавил, но теперь я получаю повторяющиеся столбцы, и, в частности, один столбец, который мне вообще не нужен. Вот ASP:
<ASP:DataGrid id="UserDataGrid" AutoGenerateColums="False" runat="server">
<Columns>
<asp:EditCommandColumn CancelText="Cancel" EditText="Edit" UpdateText="Update" HeaderText="Edit item">
<ItemStyle Wrap="False" />
<HeaderStyle Wrap="False"/>
</asp:EditCommandColumn>
<asp:BoundColumn DataField="Email" HeaderText="Email" ReadOnly="false" SortExpression="Email" />
<asp:BoundColumn DataField="UserID" HeaderText="User ID" ReadOnly="false" SortExpression="UserID" />
<asp:BoundColumn DataField="FullName" HeaderText="User Name" ReadOnly="false" SortExpression="FullName" />
</Columns>
</ASP:DataGrid>
И код, лежащий в основе:
DataTable dtUsers = new DataTable();
dtUsers = dataAccessManager.ExecuteSQLForTable("SELECT * FROM tblUser");
UserDataGrid.DataSource = dtUsers;
UserDataGrid.DataBind();
Все, что я прочитал, говорит о том, что значение AutoGenerateColumns
false должно решить проблему, но это ничего не делает.
Ответ №1:
Глядя на предоставленный вами код, AutoGenerateColumns
кажется, что он написан неправильно. Все должно работать нормально, если вы это исправите.
<asp:DataGrid ID="UserDataGrid" AutoGenerateColumns="false" runat="server">
Комментарии:
1. Так много масок для лица. Я думал, VS2010 будет жаловаться на свойства, которые не соответствуют классу?
Ответ №2:
Решение: 1
Номинально свойство autogeneratecolumns равно true, и если мы привяжем сетку данных к таблице, в сетке данных будут отображаться все столбцы таблицы. Только когда вы установите для autogeneratecolumns значение false, вы можете разрешить сетке данных отображать столбцы, которые вы назначили.
Но, по вашим словам, это не работает. Хорошо
Решение: 2
Столбцы сетки данных можно скрыть
DataTable dtUsers = new DataTable();
dtUsers = dataAccessManager.ExecuteSQLForTable("SELECT * FROM tblUser");
UserDataGrid.DataSource = dtUsers;
UserDataGrid.DataBind();
//Right Below line for hide columns
UserDataGrid.Columns[0].Visible = false;//Hide First column of the DataGrid
UserDataGrid.Columns[1].Visible = false;//Hide Second column of the DataGrid
UserDataGrid.Columns[2].Visible = false;//Hide Third column of the DataGrid
Решение: 3
Столбцы сетки данных можно удалить
DataTable dtUsers = new DataTable();
dtUsers = dataAccessManager.ExecuteSQLForTable("SELECT * FROM tblUser");
UserDataGrid.DataSource = dtUsers;
UserDataGrid.DataBind();
//Right Below line for Remove columns
UserDataGrid.Columns[0].Remove(); //Remove First column of the DataGrid
UserDataGrid.Columns[1].Remove(); //Remove Second column of the DataGrid
UserDataGrid.Columns[2].Remove(); //Remove Third column of the DataGrid
Наилучшие пожелания