举个例子,现在没编辑前是这样的
编辑后就变成这样了
但是我写死了的是和否是可以的我贴我的代码protected void GridContent_RowEditing(object sender, GridViewEditEventArgs e)
{
string isCheckTxt = ((Label)GridContent.Rows[e.NewEditIndex].Cells[2].FindControl("Label3")).Text;
//string infoTypeTxt = ((Label)GridContent.Rows[e.NewEditIndex].Cells[5].FindControl("Label2")).Text;
//string policeTxt = ((Label)GridContent.Rows[e.NewEditIndex].Cells[7].FindControl("Label4")).Text;
GridContent.EditIndex = e.NewEditIndex;
bind();
((DropDownList)GridContent.Rows[e.NewEditIndex].Cells[2].FindControl("ddlCheck1")).SelectedValue = isCheckTxt;
//((DropDownList)GridContent.Rows[e.NewEditIndex].Cells[5].FindControl("ddlType")).SelectedValue = infoTypeTxt;
//((DropDownList)GridContent.Rows[e.NewEditIndex].Cells[7].FindControl("ddlPolice")).SelectedValue = policeTxt;
}
编辑后就变成这样了
但是我写死了的是和否是可以的我贴我的代码protected void GridContent_RowEditing(object sender, GridViewEditEventArgs e)
{
string isCheckTxt = ((Label)GridContent.Rows[e.NewEditIndex].Cells[2].FindControl("Label3")).Text;
//string infoTypeTxt = ((Label)GridContent.Rows[e.NewEditIndex].Cells[5].FindControl("Label2")).Text;
//string policeTxt = ((Label)GridContent.Rows[e.NewEditIndex].Cells[7].FindControl("Label4")).Text;
GridContent.EditIndex = e.NewEditIndex;
bind();
((DropDownList)GridContent.Rows[e.NewEditIndex].Cells[2].FindControl("ddlCheck1")).SelectedValue = isCheckTxt;
//((DropDownList)GridContent.Rows[e.NewEditIndex].Cells[5].FindControl("ddlType")).SelectedValue = infoTypeTxt;
//((DropDownList)GridContent.Rows[e.NewEditIndex].Cells[7].FindControl("ddlPolice")).SelectedValue = policeTxt;
}
首先多添加一个空白项.
private void ShowInfo(int SID)
{
Maticsoft.BLL.Qcountsum bll = new Maticsoft.BLL.Qcountsum();
Maticsoft.Model.Qcountsum model = bll.GetModel(SID);
this.lblSID.Text = model.SID.ToString();
this.txtsga01.SelectedValue = model.sga01;
this.txtsga02.SelectedValue = model.sga02;
//流水线
DataView dv21 = new DataView(scanapmdt());
dv21.RowFilter = ("parentcode='" + txtsga02.SelectedValue.ToString() + "'");
txtsga03.DataSource = dv21;
txtsga03.DataTextField = "cinvcname";
txtsga03.DataValueField = "no";
txtsga03.DataBind();
this.txtsga03.SelectedValue = model.sga03;
this.txtsga06.SelectedItem.Text = model.sga06; //半成品加工点
this.txtsga07.SelectedItem.Text = model.sga07; //半成品加工点流水线
this.txtsga51.Text = model.sga51.ToString();
this.txtsga52.Text = model.sga52.ToString();
this.txtsga91.Text = model.sga91.ToString();
//生成检验工序
DataTable dt = scanapmdt();
DataView dv2 = new DataView(dt);
dv2.RowFilter = ("parentcode='" + model.sga01 + "'");
dv2.Sort = "no";
txtgb01.DataSource = dv2;
txtgb01.DataTextField = "cinvcname";
txtgb01.DataValueField = "no";
txtgb01.DataBind();
//添加工序空白项
this.txtgb01.Items.Insert(0, new ListItem("", ""));
this.txtgb01.SelectedIndex = 0;
}
然后在生成gridview的时候,循环添加
private void forDropDownList()
{
foreach (GridViewRow gvr in GridView1.Rows)
{
Label lbid = (Label)gvr.FindControl("lbID");
int ID = int.Parse(lbid.Text);
Maticsoft.BLL.Qcountb bll = new Maticsoft.BLL.Qcountb();
Maticsoft.Model.Qcountb model = bll.GetModel(ID);
string gb05 = model.gb05;
DropDownList ddl = (DropDownList)gvr.FindControl("DropDownList2");
ddl.Items.Insert(0, new ListItem("", ""));
ddl.Items.Insert(1, new ListItem("", "1"));
ddl.SelectedIndex = 0;
ddl.SelectedItem.Text = gb05;
}
}
string isCheckTxt = ((Label)GridContent.Rows[e.NewEditIndex].Cells[2].FindControl("Label3")).Text; string infoTypeTxt = ((Label)GridContent.Rows[e.NewEditIndex].Cells[5].FindControl("Label2")).Text;这条语句我要求出下面的Id,我写死了的3是没问题的
//string policeTxt = ((Label)GridContent.Rows[e.NewEditIndex].Cells[7].FindControl("Label4")).Text;
GridContent.EditIndex = e.NewEditIndex;
bind();
((DropDownList)GridContent.Rows[e.NewEditIndex].Cells[2].FindControl("ddlCheck1")).SelectedValue = isCheckTxt;
((DropDownList)GridContent.Rows[e.NewEditIndex].Cells[5].FindControl("ddlType")).SelectedValue = "3";这条语句对应上面的第二行,3是求那个dropdownlist数值里的Id
//((DropDownList)GridContent.Rows[e.NewEditIndex].Cells[7].FindControl("ddlPolice")).SelectedValue = policeTxt;
//string policeTxt = ((Label)GridContent.Rows[e.NewEditIndex].Cells[7].FindControl("Label4")).Text;
GridContent.EditIndex = e.NewEditIndex;
bind();
((DropDownList)GridContent.Rows[e.NewEditIndex].Cells[2].FindControl("ddlCheck1")).SelectedValue = isCheckTxt;
((DropDownList)GridContent.Rows[e.NewEditIndex].Cells[5].FindControl("ddlType")).SelectedValue = "3";这条语句对应上面的第二行,3是求那个dropdownlist数值里的Id
//((DropDownList)GridContent.Rows[e.NewEditIndex].Cells[7].FindControl("ddlPolice")).SelectedValue = policeTxt;中间这个,绑定的问题吧.
http://www.cnblogs.com/insus/archive/2009/03/13/1411016.html
http://www.cnblogs.com/insus/archive/2011/03/28/1997458.html
比如有个学生原来是外语学院的 但是当点击编辑时 绑定过来的第一个学院却是软件学院 因为数据库里第一个数据是软件学院 我想让默认显示他原来的学院 也就是当点击编辑按钮时候 默认的值是外语学院 请问应该这么做
还有个实例http://blog.csdn.net/loveheye/article/details/5868119 但我照着写都没成功