DataGrid模板列中如果使用了自定义控件,如何控制数据绑定和事件响应?

xlzhu 2003-04-30 04:59:12
我在DataGrid的模板列中放入了一个CheackBox,当源数据是1时选中,是0事不选中,但是无法对这个控件进行访问,FindControl()方法和Cell()都只能找到默认的文本框,自定义控件访问不到,谁有这方面的经验?
...全文
31 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
asam2183 2003-04-30
  • 打赏
  • 举报
回复
楼上两位的方法是对的
或者:(第一列为CheckBox)
if(((CheckBox)DataGrid1.Items[i].Cells[0].Controls[1]).Checked)
{
//do something
}
xlzhu 2003-04-30
  • 打赏
  • 举报
回复
楼上说的我就试下先!有用我就结帖了,多谢
wacle 2003-04-30
  • 打赏
  • 举报
回复
这个你大可以放心,这东西我都不知道处理过多少次了,就是摸扳列才可以拖控件上去啊,难道绑定列行得?你得这种处理,我很早就处理过了,放心把
xlzhu 2003-04-30
  • 打赏
  • 举报
回复
楼上两位的方法中都用了FindControl(),我怕还是不行,我这个控件是放在模板列中的,我用FindControl将它返回的控件赋给一个临时的CheckBox对象,调试时发现它总是NULL,而且无法对这个CheckBox的数据改变事件做响应,比如用户将CheckBox原来选中的变为不选中,在哪里写响应代码呢?
luoqing 2003-04-30
  • 打赏
  • 举报
回复
加入一个TemplateColumn <asp:TemplateColumn> <ItemStyle Width="12px"></ItemStyle>
<ItemTemplate>
<asp:CheckBox AutoPostBack="False" id="checkbox1" Visible="True" runat="server" />
</ItemTemplate>
</asp:TemplateColumn>


在代码中放问
foreach(DataGridItem m_item in this.dgList.Items)
{
if(((System.Web.UI.WebControls.CheckBox)m_item.Cells[0].FindControl("checkbox1")).Checked==true)
{
//如果被选定就进行处理 }
}

wacle 2003-04-30
  • 打赏
  • 举报
回复
这个不会吧,应该没有问题,大家都是这么用的。
foreach(DataGridItem item in dgrd.Items)
{
if(dataset1.Tables[table].Rows[item.ItemIndex][columnName].ToString()=="1")
{
((CheckBox)item.FindControl("checkbox的ID")).Checked=true;
}
else
((CheckBox)item.FindControl("checkbox的ID")).Checked=false;
}

62,046

社区成员

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

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

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

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