111,129
社区成员
发帖
与我相关
我的任务
分享
protected void personalpaiban_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//添加dropdownlist,并给其赋值
if (e.Row.RowIndex >= 0)
{
for (int i = 2; i < e.Row.Cells.Count; i++)
{
DropDownList ddl = new DropDownList();
ddl.ID = "DropDownList" + i.ToString();
ddl.Items.Add(new ListItem("早", "1"));
ddl.Items.Add(new ListItem("中", "2"));
ddl.Items.Add(new ListItem("晚", "3"));
ddl.Items.Add(new ListItem("休", "4"));
//把原表中数据通过dropdownlist反映出来
ddl.SelectedIndex = Convert.ToInt32(e.Row.Cells[i].Text.ToString()) - 1;
e.Row.Cells[i].Controls.Add(ddl);
}
}
}
}
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowIndex == 0)
{
TableCellCollection cells = e.Row.Cells;
HiddenField1.Value = cells.Count.ToString();//这是Columns.Count
}
}
GridView.Columns.Count,莫大的一个0跃然纸上,开始当然是以为自己的代码有问题,反复检查后,确信一点问题都没有,驱猫上网百一下和G一下,发现遇到这个问题的朋友还不少.
原来服务器端DataSet或者DateTbale之流绑定给GridView之后,GridView只会按照字段的顺序显示所有列,此时无论GridView的AutoGenerateColumns属性启用还是不启用,Columns对象的Count将为0,因为GridView还是会自动生成的列,而自动生成列是不会放入到Columns集合中去的.
for (int i = 2; i < gvpaiban.Columns.Count; i++)
ddlItem += ((DropDownList)gvpaiban.Rows[index].Cells[7].FindControl("DropDownList" + i.ToString())).SelectedItem.ToString() + ",";
Response.Write(ddlItem);//这就是你要的值
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if ((e.Row.RowState == DataControlRowState.Edit) || (e.Row.RowState ==( DataControlRowState.Edit | DataControlRowState.Alternate)))
{
for (int i = 2; i < e.Row.Cells.Count; i++)
{
DropDownList ddl = new DropDownList();
ddl.ID = "DropDownList" + i.ToString();
ddl.Items.Add(new ListItem("早", "1"));
ddl.Items.Add(new ListItem("中", "2"));
ddl.Items.Add(new ListItem("晚", "3"));
ddl.Items.Add(new ListItem("休", "4"));
e.Row.Cells[i].Controls.Add(ddl);
ddl.SelectedIndex = Convert.ToInt32(((TextBox)e.Row.Cells[i].Controls[0]).Text);//在编辑状态下是TextBox
((TextBox)e.Row.Cells[i].Controls[0]).Visible = false;//隐藏编辑状态下的TextBox
}
}
else if (e.Row.RowState == DataControlRowState.Normal | e.Row.RowState == DataControlRowState.Alternate)
{
for (int i = 2; i < e.Row.Cells.Count; i++)
{
DropDownList ddl = new DropDownList();
ddl.ID = "DropDownList" + i.ToString();
ddl.Items.Add(new ListItem("早", "1"));
ddl.Items.Add(new ListItem("中", "2"));
ddl.Items.Add(new ListItem("晚", "3"));
ddl.Items.Add(new ListItem("休", "4"));
//把原表中数据通过dropdownlist反映出来
e.Row.Cells[i].Controls.Add(ddl);
ddl.SelectedIndex = Convert.ToInt32(e.Row.Cells[i].Text.ToString());
}
}
}
} Button btn = (Button)e.CommandSource;
int index = ((GridViewRow)btn.NamingContainer).RowIndex;//获得行号
//string ddlItem = "";
//for (int i = 2; i < colnum; i++)
// ddlItem += ((DropDownList)personalpaiban.Rows[index].Cells[i].FindControl("DropDownList" + i.ToString())).SelectedItem.ToString() + ",";
//Response.Write("<script>alert('"+ddlItem+"');</script>");//这就是你要的值
string bz = personalpaiban.Rows[index].Cells[3].Text;
Response.Write("<script>alert('" + bz + "');</script>"); //gvpaiban的RowCommand中获得选中值
protected void gvpaiban_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Update")
{
Button btn =(Button)e.CommandSource;
int index = ((GridViewRow)btn.NamingContainer).RowIndex;//获得行号
string ddlItem = "";
for (int i = 2; i < gvpaiban.Columns.Count; i++)
ddlItem += ((DropDownList)gvpaiban.Rows[index].Cells[i].FindControl("DropDownList" + i.ToString())).SelectedItem.ToString() + ",";
Response.Write(ddlItem);//这就是你要的值
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)//回发(没有!号
{
for (int j = 0; j < gvpaiban.Rows.Count; j++)
{
for (int i = 2; i < gvpaiban.Columns.Count; i++)
{
DropDownList ddl = new DropDownList();
ddl.ID = "DropDownList" + i.ToString();
ddl.Items.Add(new ListItem("早", "1"));
ddl.Items.Add(new ListItem("中", "2"));
ddl.Items.Add(new ListItem("晚", "3"));
ddl.Items.Add(new ListItem("休", "4"));
gvpaiban.Rows[j].Cells[i].Controls.Add(ddl);
// ddl.SelectedIndex = .......
}
}
}
}
//gvpaiban的RowCommand中获得选中值
protected void gvpaiban_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Update")
{
Button btn =(Button)e.CommandSource;
int index = ((GridViewRow)btn.NamingContainer).RowIndex;//获得行号
string ddlItem = "";
for (int i = 2; i < gvpaiban.Columns.Count; i++)
ddlItem += ((DropDownList)gvpaiban.Rows[index].Cells[7].FindControl("DropDownList" + i.ToString())).SelectedItem.ToString() + ",";
Response.Write(ddlItem);//这就是你要的值
}
}
protected void gvpaiban_RowCommand(object sender, GridViewCommandEventArgs e)
{
Response.Write("<script>alert('" + gvpaiban.Rows.Count + "sdfsadf" + gvpaiban.Columns.Count + "')</script>");
if (e.CommandName == "updates")
{
string userid = e.CommandArgument.ToString();//得到主键id
GridViewRow row = (GridViewRow)((Control)e.CommandSource).Parent.Parent;
Response.Write("<script>alert('"+gvpaiban.Rows.Count+"sdfsadf"+gvpaiban.Columns.Count+"')</script>");
for (int i = 3; i < gvpaiban.Columns.Count; i++)
{
//得到列标题
string date = gvpaiban.Columns[i].HeaderText;
//得到单元格中dropdownlist选中值
//获的单元格中dropdownlist的id
int j = i - 2;
string ddlid = "DropDownList" + j.ToString();
DropDownList ddl = (DropDownList)row.FindControl(ddlid);
int bz = ddl.SelectedIndex + 1;
Response.Write("<script>alert('"+bz+"')</script>");
}
}
}