У меня есть список, в котором я разместил datapager следующим образом. Я использую источник данных SQl и привязываю записи к ListView.data pager in listview Проблема
asp:ListView runat="server" ID="ListView1" DataKeyNames="ProductId,GameName" DataSourceID="GameTable" OnItemCommand="On_Select_Item"
и DataPager в LayoutTemplate
И в шаблоне элемента я помещаю кнопку, при нажатии она вызывает метод, где я пытаюсь принести DatakeyName значения. Он работает отлично на первой странице, когда предоставляется пейджер, но когда он перемещается на другую страницу в пейджере, он бросает мне исключение. Вот код нажатия кнопки,
protected void On_Select_Item(object sender, ListViewCommandEventArgs e)
{
if (String.Equals(e.CommandName, "AddtoCart"))
{
//checks if the user is logged in
if (User.Identity.IsAuthenticated)
{
ListViewDataItem dataItem = (ListViewDataItem)e.Item;
DropDownList dl = e.Item.FindControl("DropDownList") as DropDownList;
String val="";
if (dl != null)
{
val = dl.SelectedValue; //Get the selected value from DropDownList
}
String price = Convert.ToString(e.CommandArgument).Trim(); //Get the price for the selected game.
------------- Исключение брошено ниже линии ---------
string ProductId =
ListView1.DataKeys[dataItem.DataItemIndex]["ProductId"].ToString(); //Product Id for the selected game.
string GameName = ListView1.DataKeys[dataItem.DataItemIndex]["GameName"].ToString(); //gamename
...............................
.............................
}
В чем исключение? – Melanie
Любые особые причины использования DataPager? вы можете использовать функцию подкачки и сортировки inbuild, которая идет с gridview/listview, и используя sqldatasource (как поставщик данных для вашей сетки), вам не нужно вручную выполнять подкачку, она автоматически заботится о pagin, индексе страницы. – Vishal
Исключение, которое я получаю, это ArgumentOutOfRange, и я использую datapager, потому что запрос возвращает несколько записей, и я проверю встроенный пейджинг и вернусь к вам. –