修改gridview中某一项的值

我用gridview绑定了SQL数据库,然后在里面添加了个dropdownlist控件和一个按钮,我需要按这个按钮的时候能把当前这条数据里的某项换成dropdownlis... 我用gridview绑定了SQL数据库,然后在里面添加了个dropdownlist控件和一个按钮,我需要按这个按钮的时候能把当前这条数据里的某项换成dropdownlist里选定的值,该这么做?
gridview的ID是gridview1,dropdownlist的ID是dropdownlist1,按钮的ID是btn,数据库的表名为[people],列名为[indent]!!
展开
 我来答
zgh840925
推荐于2016-04-01 · TA获得超过283个赞
知道小有建树答主
回答量:410
采纳率:0%
帮助的人:352万
展开全部

视图部分

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Test.aspx.cs" Inherits="test.Test" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="gridview1" runat="server" AutoGenerateColumns="False" EnableModelValidation="True" OnRowCommand="gridview1_RowCommand">
            <Columns>
                <asp:BoundField DataField="indent" HeaderText="数据列" />
                <asp:TemplateField HeaderText="选择列">
                    <ItemTemplate>
                        <asp:DropDownList ID="dropdownlist1" runat="server">
                            <asp:ListItem>1</asp:ListItem>
                            <asp:ListItem>2</asp:ListItem>
                            <asp:ListItem>3</asp:ListItem>
                            <asp:ListItem>4</asp:ListItem>
                            <asp:ListItem>5</asp:ListItem>
                        </asp:DropDownList>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:ButtonField CommandName="UpdateIndent" HeaderText="按钮" Text="按钮" />
            </Columns>
        </asp:GridView>
    </div>
    </form>
</body>
</html>

代码部分

using System;
using System.Data;
using System.Web.UI.WebControls;

namespace test
{
    public partial class Test : System.Web.UI.Page
    {
        private static DataTable gridviewSource = new DataTable();
        private static int[] dropdownlistSource = new int[10];
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //模拟数据源
                gridviewSource.Columns.Add("indent", Type.GetType("System.Int32"));
                for (int i = 0; i < 20; i++)
                {
                    DataRow dr = gridviewSource.NewRow();
                    dr[0] = i;
                    gridviewSource.Rows.Add(dr);
                }
                //模拟固定下拉数据
                for (int i = 0; i < 10; i++)
                {
                    dropdownlistSource[i] = i;
                }
                //绑定数据
                BindData();
            }
        }

        //绑定数据
        private void BindData()
        {
            //设置数据源
            gridview1.DataSource = gridviewSource;
            gridview1.DataBind();
        }

        protected void gridview1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            //按钮触发事件
            if (e.CommandName == "UpdateIndent")
            {
                //获取行号
                int rowIndex = int.Parse(e.CommandArgument.ToString());
                //找到DropDownList选择的数据
                int selectValue = int.Parse(((DropDownList)gridview1.Rows[rowIndex].Cells[1].FindControl("dropdownlist1")).SelectedValue);
                //更新数据库
                gridviewSource.Rows[rowIndex][0] = selectValue;
                //你更新数据库应该是这样的,不清楚你什么数据库,以MSSQL为示例
                //using (SqlConnection connection = new SqlConnection("server=.;database=数据库名称;uid=sa;pwd=密码"))
                //{
                //    using (SqlCommand command = new SqlCommand("UPDATE [people] SET [indent] = @indent", connection))
                //    {
                //        if (connection.State != ConnectionState.Open)
                //        {
                //            connection.Open();
                //        }
                //        SqlParameter sp = new SqlParameter("@indent", selectValue);
                //        command.Parameters.Add(sp);
                //        command.ExecuteNonQuery();
                //    }
                //}
            }
            //重新绑定数据源
            BindData();
        }
    }
}
前尘恋人
2014-10-27 · TA获得超过280个赞
知道小有建树答主
回答量:675
采纳率:0%
帮助的人:273万
展开全部
直接将下拉选中的值赋给gridview的指定列啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式