修改gridview中某一项的值
我用gridview绑定了SQL数据库,然后在里面添加了个dropdownlist控件和一个按钮,我需要按这个按钮的时候能把当前这条数据里的某项换成dropdownlis...
我用gridview绑定了SQL数据库,然后在里面添加了个dropdownlist控件和一个按钮,我需要按这个按钮的时候能把当前这条数据里的某项换成dropdownlist里选定的值,该这么做?
gridview的ID是gridview1,dropdownlist的ID是dropdownlist1,按钮的ID是btn,数据库的表名为[people],列名为[indent]!! 展开
gridview的ID是gridview1,dropdownlist的ID是dropdownlist1,按钮的ID是btn,数据库的表名为[people],列名为[indent]!! 展开
2个回答
展开全部
视图部分
<%@ 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();
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询