前台代码:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="AlbumID" BorderWidth="0px" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating">
                        <Columns>
                            <asp:TemplateField HeaderText="专辑名称">
                                <ItemStyle CssClass="GvStyle_Body_Center" Width="120px" />
                                <HeaderStyle CssClass="GvStyle_Head" />
                                <ItemTemplate>
                                    <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("AlbumID","Manage_Video_OfAlbum.aspx?aid={0}") %>'
                                        Text='<%# Eval("AlbumName") %>'></asp:HyperLink>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="专辑描述">
                                <ItemStyle CssClass="GvStyle_Body_Center" Width="150px" />
                                <HeaderStyle CssClass="GvStyle_Head" />
                                <ItemTemplate>
                                    <asp:Label ID="Label2" runat="server" Text='<%# Eval("AlbumDescription") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="创建日期">
                                <ItemStyle CssClass="GvStyle_Body_Center" Width="70px" />
                                <HeaderStyle CssClass="GvStyle_Head" />
                                <ItemTemplate>
                                    <asp:Label ID="Label3" runat="server" Text='<%# Eval("CreatTime") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="更新时间">
                                <ItemStyle CssClass="GvStyle_Body_Center" Width="70px" />
                                <HeaderStyle CssClass="GvStyle_Head" />
                                <ItemTemplate>
                                    <asp:Label ID="Label4" runat="server" Text='<%# Eval("UpdataTime") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="用户名称">
                                <ItemStyle CssClass="GvStyle_Body_Center" Width="80px" />
                                <HeaderStyle CssClass="GvStyle_Head" />
                                <ItemTemplate>
                                    <asp:Label ID="Label5" runat="server" Text='<%# Eval("UserName") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:CheckBoxField DataField="IsElite" HeaderText="是否推荐">
                                <ItemStyle CssClass="GvStyle_Body_Center" Width="70px" />
                                <HeaderStyle CssClass="GvStyle_Head" />
                            </asp:CheckBoxField>
                            <asp:CheckBoxField DataField="IsHot" HeaderText="是否热门">
                                <ItemStyle CssClass="GvStyle_Body_Center" Width="70px" />
                                <HeaderStyle CssClass="GvStyle_Head" />
                            </asp:CheckBoxField>
                            <asp:TemplateField HeaderText="推荐等级">
                                <ItemStyle CssClass="GvStyle_Body_Center" Width="80px" />
                                <HeaderStyle CssClass="GvStyle_Head" />
                                <ItemTemplate>
                                    <asp:Label ID="Label1" runat="server" Text='<%# Eval("Stars","{0}级") %>'></asp:Label>
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:DropDownList ID="DropDownList1" runat="server" SelectedValue='<%# Eval("Stars") %>'>
                                        <asp:ListItem Value="0">没有等级</asp:ListItem>
                                        <asp:ListItem Value="1">一级</asp:ListItem>
                                        <asp:ListItem Value="2">二级</asp:ListItem>
                                        <asp:ListItem Value="3">三级</asp:ListItem>
                                        <asp:ListItem Value="4">四级</asp:ListItem>
                                        <asp:ListItem Value="5">五级</asp:ListItem>
                                    </asp:DropDownList>
                                </EditItemTemplate>
                            </asp:TemplateField>
                            <asp:CommandField HeaderText="操作" ShowEditButton="True">
                                <HeaderStyle CssClass="GvStyle_Head" />
                                <ItemStyle CssClass="GvStyle_Body_Center" Width="80px" />
                            </asp:CommandField>
                        </Columns>
                    </asp:GridView>
后台代码:
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        //DropDownList ddl = this.GridView1.Rows[e.RowIndex].FindControl("DropDownList1") as DropDownList;
        //string stars = ddl.SelectedItem.Value.ToString();
        string stars = ((DropDownList)GridView1.Rows[e.RowIndex].Cells[7].FindControl("DropDownList1")).SelectedItem.Value.ToString();        CheckBox cb1 = this.GridView1.Rows[e.RowIndex].Cells[5].Controls[0] as CheckBox;
        CheckBox cb2 = this.GridView1.Rows[e.RowIndex].Cells[6].Controls[0] as CheckBox;
        int hot = 0;
        int elite = 0;
        if (cb1.Checked)
            elite = 1;
        if (cb2.Checked)
            hot = 1;
        CM_Video_Album aAlbum = new CM_Video_Album();
        aAlbum.IsHot = hot;
        aAlbum.IsElite = elite;
        aAlbum.Stars = Convert.ToInt32(stars);
        aAlbum.AlbumID = Convert.ToInt32(this.GridView1.DataKeys[e.RowIndex].Value.ToString());
        cvam.Update_Album(aAlbum);
        this.GridView1.EditIndex = -1;
        string userName = "";
        string albumTime = "";
        if (ViewState["UserName"] != null)
        {
            userName = ViewState["UserName"].ToString();
        }
        if (ViewState["AlbumName"] != null)
        {
            albumTime = ViewState["AlbumName"].ToString();
        }
        BindPage(albumTime, userName);
另外GridView1_RowEditing和GridView1_RowCancelingEdit事件都写了,问题是编辑状态下,DropDownList1和两个CheckBoxField都取不到值,DropDownList1一直是0,CheckBoxField的checked一直false,即使你选中!
真是奇怪啊!以前一直可以的啊!高手帮忙!

解决方案 »

  1.   

    检查一下aspx页顶部或者web.config里有没有设置enableViewStates = false
      

  2.   

    检查一下aspx页顶部或者web.config里有没有设置enableViewStates = false
    ------------
    都没有啊!
      

  3.   

    应该设置enableViewStates = false ???
    我也一直怀疑ViewState的问题
      

  4.   

    有没有 if (!Page.IsPostBack) 
            {
      

  5.   

    有没有 if (!Page.IsPostBack) 
            {
    ---------------
    是的 非常感谢马上揭贴!
    这种低级错误!咳!
      

  6.   

    if (!Page.IsPostBack) 放这里边肯定没问题了