У меня проблемы с созданием GridView в DevExpress, который может отфильтровывать строки.Идея такова:
1> Log In
2> Query:
"Select * from tblExample where UserName = '" + username + "';"
3> Results show in GridView (DataView would also be okay)
Проблема в том, что я могу только получить всю таблицу из базы данных
Самое близкое, что я получил, - это получить все строки из модели, а затем выполнить запрос итолько запись результатов, если имя пользователя совпадает.Тем не менее, строки по-прежнему генерируются как пробелы.
Я также пытался создать обычную DataTable (не DevExpress) и отображать ее в формате html, однако это не так часто, как было бы.
````
@{
var grid = Html.DevExpress().GridView(settings =>
{
settings.Name = "tInvRes";
settings.CallbackRouteValues = new { Controller = "t_Inventory1", Action = "tInvResPartial" };
settings.SettingsEditing.AddNewRowRouteValues = new { Controller = "t_Inventory1", Action = "tInvResPartialAddNew" };
settings.SettingsEditing.UpdateRowRouteValues = new { Controller = "t_Inventory1", Action = "tInvResPartialUpdate" };
settings.SettingsEditing.DeleteRowRouteValues = new { Controller = "t_Inventory1", Action = "tInvResPartialDelete" };
settings.SettingsEditing.Mode = GridViewEditingMode.EditFormAndDisplayRow;
settings.SettingsBehavior.ConfirmDelete = true;
settings.CommandColumn.Visible = false;
settings.CommandColumn.ShowNewButton = true;
settings.CommandColumn.ShowDeleteButton = true;
settings.CommandColumn.ShowEditButton = true;
settings.KeyFieldName = "ControlNumber";
settings.SettingsPager.Visible = true;
settings.Settings.ShowGroupPanel = true;
settings.Settings.ShowFilterRow = true;
settings.SettingsBehavior.AllowSelectByRowClick = true;
settings.SettingsAdaptivity.AdaptivityMode = GridViewAdaptivityMode.Off;
settings.SettingsAdaptivity.AdaptiveColumnPosition = GridViewAdaptiveColumnPosition.Right;
settings.SettingsAdaptivity.AdaptiveDetailColumnCount = 1;
settings.SettingsAdaptivity.AllowOnlyOneAdaptiveDetailExpanded = false;
settings.SettingsAdaptivity.HideDataCellsAtWindowInnerWidth = 0;
settings.Columns.Add("ControlNumber");
settings.Columns.Add("UserName");
settings.Columns.Add("PartNumber");
settings.Columns.Add("Price");
settings.Columns.Add(column =>
{
column.Caption = "TESTCOL";
column.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
column.CellStyle.HorizontalAlign = HorizontalAlign.Center;
column.UnboundType = DevExpress.Data.UnboundColumnType.String;
column.Settings.GroupInterval = DevExpress.XtraGrid.ColumnGroupInterval.Value;
column.Settings.AllowGroup = DefaultBoolean.True;
column.Settings.AllowDragDrop = DefaultBoolean.True;
column.SetDataItemTemplateContent(c =>
{
string cono = "";
string queryStringg = "SELECT CONTROLNUMBER FROM [dbo].[tblExample] WHERE USERNAME = '" + Session["UserName"].ToString() + "'";
string connectionStringg = WebConfigurationManager.AppSettings["sqlcon"];
using (SqlConnection connection = new SqlConnection(connectionStringg))
{
SqlCommand command = new SqlCommand(queryStringg, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
try
{
while (reader.Read())
{
cono = reader[0].ToString();
}
}
finally
{
// Always call Close when done reading.
reader.Close();
}
}
ViewContext.Writer.Write(string.Format("<button id='addbtn" + c.KeyValue + "' type='button' onclick='addCart(" + c.KeyValue + ", " + cono + ")'>Add</button>"));
});
});
});
if (ViewData["EditError"] != null)
{
grid.SetEditErrorText((string)ViewData["EditError"]);
}
}
@grid.Bind(Model).GetHtml()
````
Выходные строки обычно выглядят так:
1 Jack 14u4 14.00 1
2 Jack 14f4 12.50 2
3 Jill 65v2 11.00 3
4 Jack 341c 63.00 4
5 John 4u48 16.00 5
6 Jack 3rf3 20.00 6
С кодом, который у меня есть:
1 Jack 14u4 14.00 1
2 Jack 14f4 12.50 2
4 Jack 341c 63.00 4
6 Jack 3rf3 20.00 6
Ожидаемый результат:
1 Jack 14u4 14.00 1
2 Jack 14f4 12.50 2
4 Jack 341c 63.00 4
6 Jack 3rf3 20.00 6