gridview 的dropdownlist

lude8880 2009-03-18 11:05:57
我有几个templatefields是dropdownlist,用代码实现数据访问功能,现在我想disable他们,知道用户按了编辑的按钮才enable,用户edit完了以后再变成不可选。
有人遇到类似的问题吗?
...全文
170 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
lude8880 2009-03-19
  • 打赏
  • 举报
回复
直接e.Row.FindContro不行吗?
lude8880 2009-03-18
  • 打赏
  • 举报
回复
protected virtual void OnRowEditing(Object sender,GridViewEditEventArgs e)
{
editing = true;
int index = e.NewEditIndex;

GridViewRow row = GridView1.Rows[index];
DropDownList dropdownlist2 = (DropDownList)row.FindControl("DropDownList2");
DropDownList dropdownlist3 = (DropDownList)row.FindControl("DropDownList3");
DropDownList dropdownlist4 = (DropDownList)row.FindControl("DropDownList4");
DropDownList dropdownlist5 = (DropDownList)row.FindControl("DropDownList5");
DropDownList dropdownlist6 = (DropDownList)row.FindControl("DropDownList6");
DropDownList dropdownlist7 = (DropDownList)row.FindControl("DropDownList7");
dropdownlist2.Enabled = true;
dropdownlist3.Enabled = true;
dropdownlist4.Enabled = true;
dropdownlist5.Enabled = true;
dropdownlist6.Enabled = true;
dropdownlist7.Enabled = true;
}
我就想一列可编辑,但是所有列都可编辑了
malin2670372 2009-03-18
  • 打赏
  • 举报
回复
你应该是再ItemTemplate中一个DropDownList不可编辑。
然后再 EditTemplate中一个DropDownList可编辑的...
lude8880 2009-03-18
  • 打赏
  • 举报
回复
我在GridView1_RowDataBound里变成disabled,在OnRowEditing变成enabled。但是OnRowEditing以后好像又访问了GridView1_RowDataBound,所以又不可选了
嘴哥臭鼬 2009-03-18
  • 打赏
  • 举报
回复
恩,想得到的都能实现,先试试后台代码行不行,不行用Js硬拼id找也行
liuyeede 2009-03-18
  • 打赏
  • 举报
回复
这个可以实现。但是你的问题是?在那里实现不了。
koukoujiayi 2009-03-18
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 lude8880 的回复:]
DropDownList)e.Row.Cells[10]
cells[10]啥意思啊?
[/Quote]
哦!cells[10]是DropDownList在第10列!!
lude8880 2009-03-18
  • 打赏
  • 举报
回复
DropDownList)e.Row.Cells[10]
cells[10]啥意思啊?
koukoujiayi 2009-03-18
  • 打赏
  • 举报
回复
楼主还没搞定啊??
我来做做!看看是否符合楼主意思!!
1.在Page_Load中:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState["editFlag"] = "0";//进入Edit的标志,1-进入,0-没进入
ViewState["editNo"] = "-1"; //获得当前编辑的行号,-1没有获得
}
}

2.在GridView的RowCommand中
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName.ToString() == "Edit")
{
ViewState["editFlag"] = "1";//设置进入编辑
ViewState["editNo"] = e.CommandArgument.ToString();//获得当前编辑的行号
}
else if(e.CommandName.ToString()=="Cancel" || e.CommandName.ToString()=="Update")
ViewState["editFlag"] = "0";
}

3.在GridView的RowDataBound中:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (ViewState["editFlag"].ToString() == "1" & e.Row.RowIndex == Convert.ToInt32(ViewState["editNo"]))
((DropDownList)e.Row.Cells[10].FindControl("DropDownList1")).Enabled = true;
else
((DropDownList)e.Row.Cells[10].FindControl("DropDownList1")).Enabled = false;
}
}

一切OK!!
springbell 2009-03-18
  • 打赏
  • 举报
回复
走一个 - -!
lude8880 2009-03-18
  • 打赏
  • 举报
回复
看我5楼的代码,不是这行被enabled,而是所有行。
yh7272hy 2009-03-18
  • 打赏
  • 举报
回复
在GridView1_RowDataBound里设置DropDownList的enabled=false,在OnRowEditing设置DropDownList的enabled=true。
lude8880 2009-03-18
  • 打赏
  • 举报
回复
我有7个dropdownlist。有没有更简单的办法啊?
michael_sw 2009-03-18
  • 打赏
  • 举报
回复
4楼正解
lude8880 2009-03-18
  • 打赏
  • 举报
回复
不是啊,就一个dropdownlist在itemtemplate里
koukoujiayi 2009-03-18
  • 打赏
  • 举报
回复
ItemTemplate中的dropdownlist
和EditItemTemplate中的dropdownlist是两个控件!
楼主是放两个控件吗?
insus 2009-03-18
  • 打赏
  • 举报
回复
为何在这样,当不是编辑状态,也是呈DropDownList显示?
直接显示存在数据库的值不行吗?
即是说,在ItemTemplate中,放Label或是Eval("xxx")
在<EditItemTemplate>中才放DropDownList
lude8880 2009-03-18
  • 打赏
  • 举报
回复
看不明白啊.有代码吗?多谢
xiaohe185 2009-03-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 malin2670372 的回复:]
你应该是再ItemTemplate中一个DropDownList不可编辑。
然后再 EditTemplate中一个DropDownList可编辑的...
[/Quote]
常用该方法
lude8880 2009-03-18
  • 打赏
  • 举报
回复
ding

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧