Дополнительная информация: индекс был вне диапазона. Должно быть неотрицательным и меньшим, чем размер коллекции в GridView в
Я пытаюсь извлечь все значение строки gridview при нажатии кнопки конкретной строки, но его saya ---
Additional information: Index was out of range. Must be non-negative and less than the size of the collection
Что я уже пробовал:
<asp:GridView ID="gdvCampaign" runat="server" ShowFooter="true" AutoGenerateColumns="false" OnRowCommand="gdvCampaign_RowCommand" class="col-md-12 table-bordered table-striped table-condensed cf" OnRowDeleting="gdvCampaign_RowDeleting"> <Columns> <asp:BoundField DataField="RowNumber" HeaderText="Sl No." /> <asp:TemplateField HeaderText="Category"> <ItemTemplate> <asp:DropDownList ID="ddlCategory" runat="server" class="form-control" AppendDataBoundItems="true"> <asp:ListItem Value="-1">Select</asp:ListItem> </asp:DropDownList> </ItemTemplate> <FooterStyle HorizontalAlign="Center" /> <FooterTemplate> <asp:Button ID="ButtonAdd" runat="server" Text="Add" class="btn btn-info btn-sm" OnClick="ButtonAdd_Click" /> </FooterTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Channel"> <ItemTemplate> <asp:DropDownList ID="ddlChannel" runat="server" class="form-control" AppendDataBoundItems="true"> <asp:ListItem Value="-1">Select</asp:ListItem> </asp:DropDownList> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Click Action"> <ItemTemplate> <asp:Button ID="btnCollateralPopup" runat="server" CommandArgument='<%#Eval("RowNumber") %>' class="btn btn-info btn-sm" Text="Collateral" /> </ItemTemplate> </asp:TemplateField> <asp:CommandField HeaderText="Action Taken" ShowDeleteButton="true" /> </Columns> </asp:GridView>
protected void gdvCampaign_RowCommand(object sender, GridViewCommandEventArgs e) { int rowID = Convert.ToInt32(e.CommandArgument); campaignModel.tempParentID = rowID; campaignModel.categoryID = Convert.ToInt32(((DropDownList)gdvCampaign.Rows[rowID].FindControl("ddlCategory")).SelectedValue); //Error campaignModel.categoryName = ((DropDownList)gdvCampaign.Rows[rowID].FindControl("ddlCategory")).SelectedItem.Text; campaignModel.channelID = Convert.ToInt32(((DropDownList)gdvCampaign.Rows[rowID].FindControl("ddlChannel")).SelectedValue); campaignModel.channelName = ((DropDownList)gdvCampaign.Rows[rowID].FindControl("ddlChannel")).SelectedItem.Text; dtCampaign.Rows.Add(campaignModel.tempParentID, campaignModel.categoryID, campaignModel.channelID); ViewState["tempCampaignView"] = dtCampaign; }
ZurdoDev
Очень просто.
1. Обратите внимание на то, какая строка кода вызвала ошибку.
2. что-то в той строке, к которой вы пытаетесь получить доступ через индекс) не существует. Это все равно что пытаться получить доступ к 10-му элементу в коллекции, состоящей из 5 элементов.
Bit2 Developer
Спасибо, Райан....!
Твоя точка зрения действительно работает на меня.
ZurdoDev
Рад это слышать.