我有以下colums表:如何检索科拉姆的价值GridView控件
FileID | username | filename
我使用它有两个colums一个GridView:
FileName | Download
在下载列我有一个名为下载的按钮,将用于下载文件。现在我想要检索fileID或文件名,当我点击下载按钮。
我想这条线得到的fileid,但它给了一个错误:
int FileID = (int)GridView1.DataKeys[Convert.ToInt32(e.CommandArgument)].Value;
错误: System.ArgumentOutOfRangeException是由用户代码未处理 消息=索引超出范围。必须是非负数且小于集合的大小。
这里是我的aspx页面代码:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="filelist"
Width="404px" onrowcommand="GridView1_RowCommand" Height="131px">
<Columns>
<asp:BoundField DataField="fileid" HeaderText="fileid" InsertVisible="False"
ReadOnly="True" SortExpression="fileid" Visible="False" />
<asp:BoundField DataField="userid" HeaderText="userid" SortExpression="userid"
Visible="False" />
<asp:BoundField DataField="filename" HeaderText="FileName"
SortExpression="filename" />
<asp:ButtonField HeaderText="Download" Text="Download" CommandName="download"/>
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="filelist" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT * FROM [FileDetails] WHERE ([userid] = @userid)">
<SelectParameters>
<asp:SessionParameter Name="userid" SessionField="userid" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
是否有另一种方式做到这一点?
1号线提供了以下异常: 无法投类型的对象System.Web.UI.WebControls.GridView为键入“的System.Web.UI .WebControls.GridViewRow”。 – v3z3t4
@ v3z3t4:编辑我的答案。 –