猿问

asp.net关于GridViewCommandEventArgs参数的问题

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<script runat="server">

    protected void grdMovieCategories_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        int index = Int32.Parse((string)e.CommandArgument);
        int id = (int)grdMovieCategories.DataKeys[index].Values["Id"];
        int position = (int)grdMovieCategories.DataKeys[index].Values["Position"];
        switch (e.CommandName)
        {
            case "Up":
                position--;
                break;
            case "Down":
                position++;
                break;
        }
        srcMovieCategories.UpdateParameters["Id"].DefaultValue = id.ToString();
        srcMovieCategories.UpdateParameters["Position"].DefaultValue = position.ToString();
        srcMovieCategories.Update();
    }
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Show ButtonField</title>
</head>
<body>
    <form runat="server">
    <div>
    
    <asp:GridView
       
        DataSource
        DataKeyNames="Id,Position"
        AutoGenerateColumns="false"
        OnRowCommand="grdMovieCategories_RowCommand"
        Runat="server">
        <Columns>
        <asp:ButtonField
            Text="Move Up"
            CommandName="Up" />
        <asp:ButtonField
            Text="Move Down"
            CommandName="Down" />
        <asp:BoundField
            DataField="Position"
            HeaderText="Position" />
        <asp:BoundField
            DataField="Name"
            HeaderText="Category Name" />
        </Columns>
    </asp:GridView>    
    
    <asp:SqlDataSource
       
        ConnectionString="<%$ ConnectionStrings:Movies %>"
        SelectCommand="SELECT Id, Name, Position FROM MovieCategories
            ORDER BY Position"
        UpdateCommand="UPDATE MovieCategories SET
            Position=@Position WHERE Id=@Id"
        Runat="server">
        <UpdateParameters>
        <asp:Parameter
            Name="Id" />
        <asp:Parameter
            Name="Position" />
        </UpdateParameters>
    </asp:SqlDataSource>        
    
    </div>
    </form>
</body>
</html>

例如这么一个程序,e.CommandArgument怎么取出来行序列的?又没有定义过CommandArgument的值

慕尼黑5688855
浏览 535回答 2
2回答

慕田峪9158850

是在这里定义的: <asp:ButtonField Text="Move Up" CommandName="Up" /> <asp:ButtonField Text="Move Down" CommandName="Down" />

holdtom

默认就是这个
随时随地看视频慕课网APP
我要回答