我在Visual Studio中有一个gridview,其中一个collumns根据插入该行的文件类型显示小图标徽标, 我已经创建了一些代码,我相信一旦点击了图标就会打开attatched文件。
当我运行代码时,我收到此错误:
指数超出范围。必须是非负数且小于集合的大小。参数(名称):index()。 第530行:ImgBtn.Attributes.Add(“onClick”,“javascript:window.open('DisplayPM.aspx?ServiceID =”+ Service_History.DataKeys(e.Row.RowIndex).Value.ToString +“');”)
我无法解决这个问题。
这是我在Gridview的ASPX中的代码:
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID="PdfExtention2" runat="server" ImageUrl="../icons/pdf.gif" Visible="false"/>
<asp:ImageButton ID="WordExtention2" runat="server" ImageUrl="../icons/actn103.gif" Visible="false"/>
<asp:ImageButton ID="ExcelExtention2" runat="server" ImageUrl="../icons/actn102.gif" Visible="false"/>
</ItemTemplate>
<ItemStyle Width="25%" />
</asp:TemplateField>
这是我在Gridview RowDataBound中的VB代码:
Dim pdfExtention2, wordExtention2, excelExtention2 As ImageButton
pdfExtention2 = e.Row.FindControl("PdfExtention2")
wordExtention2 = e.Row.FindControl("WordExtention2")
excelExtention2 = e.Row.FindControl("ExcelExtention2")
If e.Row.DataItem("Extention").ToString = "application/pdf" Then
pdfExtention2.Visible = True
ElseIf e.Row.DataItem("Extention").ToString = "application/msword" Then
wordExtention2.Visible = True
ElseIf e.Row.DataItem("Extention").ToString = "application/vnd.ms-excel" Then
excelExtention2.Visible = True
End If
'-----------------------------------------------------------------
Dim ImgBtn As New ImageButton
ImgBtn = e.Row.FindControl("PdfExtention2")
ImgBtn.Attributes.Add("onClick", "javascript:window.open('DisplayPM.aspx?ServiceID=" + Service_History.DataKeys(e.Row.RowIndex).Value.ToString + "');")
Dim ImgBtn2 As New ImageButton
ImgBtn2 = e.Row.FindControl("WordExtention2")
ImgBtn2.Attributes.Add("onClick", "javascript:window.open('DisplayPM.aspx?ServiceID=" + Service_History.DataKeys(e.Row.RowIndex).Value.ToString + "');")
Dim ImgBtn3 As New ImageButton
ImgBtn3 = e.Row.FindControl("ExcelExtention2")
ImgBtn3.Attributes.Add("onClick", "javascript:window.open('DisplayPM.aspx?ServiceID=" + Service_History.DataKeys(e.Row.RowIndex).Value.ToString + "');")
我希望能在错误的地方得到一些帮助。 提前谢谢
答案 0 :(得分:0)
我解决了我的问题!
我需要提出:
DataKeyNames="ServiceID,ID"
在gridview的标记中,现在它可以正常工作。
我会在2天后将其解决为已解决的答案。