Das angegebene argument lag außerhalb des Bereichs Gültiger Werte. Parameter name: index
Muss ich deaktivieren das hyperlink im gridview-je nach Ergebnis der Bedingung in meinem code, aber ich bekomme immer eine Fehlermeldung von Specified argument was out of the range of valid values. Parameter name: index
hier ist mein gridview:
<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1"
AllowPaging="True" DataKeyNames="v_id"
AutoGenerateColumns="False" AllowSorting="True" CellPadding="4"
CssClass="gridview">
<RowStyle BackColor="#EFF3FB"/>
<Columns>
<asp:BoundField DataField="ship_name" HeaderText="Vessel Name" SortExpression="ship_name">
<HeaderStyle CssClass ="tblheader2" />
</asp:BoundField>
<asp:BoundField DataField="gross_tonnage" HeaderText="Gross Tonnage" SortExpression="gross_tonnage">
<HeaderStyle CssClass ="tblheader2" />
</asp:BoundField>
<asp:BoundField DataField="regional_homeport" HeaderText="Region" SortExpression="region">
<HeaderStyle CssClass ="tblheader2" />
</asp:BoundField>
<asp:BoundField DataField="owner_name" HeaderText="Owner" SortExpression="owner_name">
<HeaderStyle CssClass ="tblheader2" />
</asp:BoundField>
<asp:BoundField DataField="cfvgl_validity_start" HeaderText="Date Issued" SortExpression="cfvgl_validity_start" DataFormatString="{0:d}">
<HeaderStyle CssClass ="tblheader2" />
</asp:BoundField>
<asp:BoundField DataField="cfvgl_validity_end" HeaderText="Expiry Date" SortExpression="cfvgl_validity_end" DataFormatString="{0:d}">
<HeaderStyle CssClass ="tblheader2" />
</asp:BoundField>
<asp:CommandField EditText="Select" ControlStyle-font-Underline="false" HeaderText ="View History" ControlStyle-forecolor="blue" ShowSelectButton="True" SelectText="History" ItemStyle-CssClass="links">
<HeaderStyle CssClass ="tblheader2"/>
</asp:CommandField >
<asp:TemplateField>
<ItemTemplate >
<asp:HyperLink ID="cfvgl" runat ="server" Target ="_blank" NavigateUrl ='<%# Eval("v_id", "~/frqd/printBFARCFVGL.aspx?CFVGLVesselID={0}")%>' Font-Underline = "false" ForeColor ="blue" CssClass ="links" >CFVGL</asp:HyperLink>
</ItemTemplate>
<HeaderStyle CssClass ="tblheader2" />
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<%--FGRVesselID query string of crystal report--%>
<asp:Hyperlink ID="fgr" runat="server" Target ="_blank" NavigateUrl='<%#Eval("v_id", "~/operator/printBFARFGR.aspx?FGRVesselID={0}") %>' Text ="FGR" font-underline="false" ForeColor="blue" CssClass="links"></asp:Hyperlink>
</Itemtemplate>
<HeaderStyle CssClass ="tblheader2" />
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="LinkButton2" runat="server" CssClass ="links" ForeColor ="blue" Font-Underline ="false" Width ="100px" PostBackUrl="#openModal">Add Violation</asp:LinkButton>
</ItemTemplate>
<HeaderStyle CssClass ="tblheader2" />
</asp:TemplateField>
<asp:BoundField DataField="vessel_type" HeaderText="Vessel Type" SortExpression="vessel_type">
<HeaderStyle CssClass ="tblheader2" />
</asp:BoundField>
</Columns>
<FooterStyle CssClass="gridviewfooter"/>
<PagerStyle CssClass="gridviewfooter" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#2461BF" />
<AlternatingRowStyle BackColor="White" />
<RowStyle CssClass="gridviewrow"/>
<EmptyDataTemplate>There are no records to display.</EmptyDataTemplate>
</asp:GridView>
Hier ist mein code hinter:
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
Dim vesseltype As String = e.Row.Cells(10).Text
Select Case vesseltype
Case 1
e.Row.Cells(10).Text = "Catcher"
Case 2
e.Row.Cells(10).Text = "Carrier"
Case 3
e.Row.Cells(10).Text = "Escortboat"
Case 4
e.Row.Cells(10).Text = "Sonarboat"
Case 5
e.Row.Cells(10).Text = "Lightboat"
Case 6
e.Row.Cells(10).Text = "Ranger Boat"
Case 7
e.Row.Cells(10).Text = "Skiffboat"
Case 8
e.Row.Cells(10).Text = "Tanker"
End Select
If e.Row.Cells(10).Text = "Catcher" Then
e.Row.Cells(9).Enabled = True
Else
e.Row.Cells(9).Enabled = False
e.Row.Cells(9).Text = "N/A"
End If
End Sub
- Welche Zeile den Fehler auslöst?
- Wenn e.Zeile.Zellen(10).Text = "Catcher" Dann
- überprüfen Sie Ihre Zellzahl mit e.Zeile.Zellen.Zählen
- ich habe bereits überprüft, dass die Zeilenanzahl .. die Zeilenanzahl abgestimmt .. aber immer noch da ist der Fehler ..
- "die Zeilenanzahl abgestimmt", was?
- ich meine die Zeilenanzahl im code verwendet hinter abgestimmt sein Zeilenanzahl in der gridview
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie fügen Sie eine zusätzliche überprüfung für die RowType, wie unten gezeigt:
Ansonsten, wenn es bindet an die GridView.Fußzeile, es werfe ein "out of range exception" als das es nicht die gleiche Anzahl von Zellen als die DataRow.
RowType
muss es sein?