Gridview下的DropDownList问题,很郁闷.

itcoo 2008-08-22 04:43:34
GridView中的第条数据行都绑定了一个DropDownList,要取得DropDownList所在行的SelectedValue和DataKeys的值.
本来已经实现了.后来不记得改动了哪里又不能实现了.很郁闷.请各位指点一下.
/////////////////////////////////////
<asp:TemplateField>
<ItemTemplate>
<asp:DropDownList ID="ddlSubCht" runat="server" DataSourceID="objSubCht" DataTextField="SubName" DataValueField="SubId" AutoPostBack="True" OnSelectedIndexChanged="ddlSubCht_SelectedIndexChanged" >
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
////////////////////////////////////

protected void ddlSubCht_SelectedIndexChanged(object sender, EventArgs e)
{
for (int i = 0; i < gvCategories.Rows.Count; i++)
{
DropDownList ddl = (DropDownList)gvCategories.Rows[i].FindControl("ddlSubCht");//问题1:在Debug下发现不能找到控件
int ddlint = Convert.ToInt32(ddl.SelectedValue);//问题2:提示"未将对象引用设置到对象的实例"
int key = (int)gvCategories.DataKeys[i].Value;//问题3:总是返回的同一个值.我想返回的是每行对应的DataKeys

lbl.Text= ddlint+"_"+key+"_"+isSingle.ToString();//输出
}
}
...全文
227 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
紫气东来_999 2008-09-05
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 itcoo 的回复:]
完美解决.
原来是要通过委托来取得DataKeys,受益非浅.
[/Quote]
itcoo 2008-08-23
  • 打赏
  • 举报
回复
完美解决.
原来是要通过委托来取得DataKeys,受益非浅.
insus 2008-08-23
  • 打赏
  • 举报
回复
虽然是DataList例子,但是还是可以参考的:

http://blog.csdn.net/insus/archive/2008/04/28/2336874.aspx
yagebu1983 2008-08-22
  • 打赏
  • 举报
回复
你直接写到一个方法中试试!!
yagebu1983 2008-08-22
  • 打赏
  • 举报
回复

protected void ddlSubCht_SelectedIndexChanged(object sender, EventArgs e)
{
for (int i = 0; i < gvCategories.Rows.Count; i++)
{
DropDownList ddl = (DropDownList)gvCategories.Rows[i].FindControl("ddlSubCht");//问题1:在Debug下发现不能找到控件
int ddlint = Convert.ToInt32(ddl.SelectedValue);//问题2:提示"未将对象引用设置到对象的实例"
int key = (int)gvCategories.DataKeys[i].Value;//问题3:总是返回的同一个值.我想返回的是每行对应的DataKeys

lbl.Text= ddlint+"_"+key+"_"+isSingle.ToString();//输出
}
}

SelectedIndexChanged事件是谁的??
yagebu1983 2008-08-22
  • 打赏
  • 举报
回复
代码根本就不对!!
itcoo 2008-08-22
  • 打赏
  • 举报
回复
没有办法解决吗?up~~
chinaicm 2008-08-22
  • 打赏
  • 举报
回复

DropDownList ddl = (DropDownList)gvCategories.Rows[i].FindControl("ddlSubCht");
测试了一下,可以找到控件啊,你看看是不是数据什么的出错了.
xuexiziji 2008-08-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 include_me 的回复:]
C# code
protected void ddlSubCht_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ddl = (DropDownList)sender;
int ddlint = Convert.ToInt32(ddl.SelectedValue);
int key = (int)gvCategories.DataKeys[(ddl.Parent as GridViewRow).RowIndex].Value;
..
}
[/Quote]
zhulinghappy 2008-08-22
  • 打赏
  • 举报
回复
DropDownList ddl = gvCategories.Rows[i].FindControl("ddlSubCht") as DropDownList;//

另外还要精确到cell
huguang2yq 2008-08-22
  • 打赏
  • 举报
回复
DropDownList ddl = (DropDownList)gvCategories.Rows[i].FindControl("ddlSubCht");//问题1:在Debug下发现不能找到控件
定位不对吧....你这对应的是第几行...单元格呢?
hy_lihuan 2008-08-22
  • 打赏
  • 举报
回复

foreach (GridViewRow row in this.GvCaseApplyList.Rows)
{
CheckBox chkPunish = (CheckBox)row.FindControl("chkCaseApply");
id=this.GvCaseApplyList.DataKeys[row.RowIndex][1].ToString();
}

第一个问题,就是没有找到控件啊;
第二个问题,编码习惯不好,在FindControl以后,都要做是否null的检测的;
第三个问题:看上面代码;
qq2013 2008-08-22
  • 打赏
  • 举报
回复
include_me 2008-08-22
  • 打赏
  • 举报
回复

protected void ddlSubCht_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ddl = (DropDownList)sender;
int ddlint = Convert.ToInt32(ddl.SelectedValue);
int key = (int)gvCategories.DataKeys[(ddl.Parent as GridViewRow).RowIndex].Value;
..
}
QQQQAnnie 2008-08-22
  • 打赏
  • 举报
回复
1,方法位置不对
2,确实少cell[]
你不精确到单元格是找不到控件的
dotnetsong 2008-08-22
  • 打赏
  • 举报
回复
方法位置不对吧
itcoo 2008-08-22
  • 打赏
  • 举报
回复
不是Cell的问题.已经试过了
bhtfg538 2008-08-22
  • 打赏
  • 举报
回复
LZ是不是少了他的Cell【】
itcoo 2008-08-22
  • 打赏
  • 举报
回复
楼上方案无用~~继续
mators 2008-08-22
  • 打赏
  • 举报
回复
http://www.cnblogs.com/weekzero/archive/2006/05/16/401231.html
自己慢慢研究,:)
加载更多回复(4)

62,074

社区成员

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

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

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

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