博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Gridview中的DataKeys問題

Posted on 2007-01-31 16:43  豆丁不想长大  阅读(1907)  评论(0)    收藏  举报

首先,請先把你的 ButtonField 轉換成 TemplateField,把它改成如下的樣子:

<Columns>
    <asp:TemplateField ShowHeader="False">
        <ItemTemplate>
            <asp:Button ID="Button1" runat="server" CausesValidation="false" CommandName="Details"
                CommandArgument='<%# Eval("OrderID") %>' Text="Details" />
        </ItemTemplate>
    </asp:TemplateField>
    <asp:BoundField DataField="OrderID" HeaderText="OrderID" ReadOnly="True" SortExpression="OrderID" />
    <asp:BoundField DataField="CustomerID" HeaderText="CustomerID" SortExpression="CustomerID" />
    <asp:BoundField DataField="EmployeeID" HeaderText="EmployeeID" SortExpression="EmployeeID" />
    <asp:BoundField DataField="ShipName" HeaderText="ShipName" SortExpression="ShipName" />
    ...
</Columns>

注意 CommandArgument='<%# Eval("OrderID") %>' 這句必須手動加上去。把 OrderID 改名成你的欄位名稱。

接著,請修改 GridView1_RowCommand() 如下:

    Protected Sub GridView1_RowCommand(...) Handles GridView1.RowCommand
        If e.CommandName = "Details" Then
            Response.Redirect(String.Format("Default.aspx?ID={0}", e.CommandArgument))
        End If
    End Sub