Gridview中如何入加一个模板,在模板中加入一个命名为chk1的checkbox的代码.

ningtree 2007-04-07 03:02:16
我想在页加载的时候指定datasource同时加一个模板,在模板中加入一个命名为chk1的checkbox,各位英雄指点一下代码如何写.谢谢各位.
...全文
257 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ningtree 2007-04-07
  • 打赏
  • 举报
回复
用luck0235方法很方便,问题解决了,谢谢各位.
luck0235 2007-04-07
  • 打赏
  • 举报
回复
一、在模版列中放置控件
<asp:GridView ID="gv" runat="server">
<Columns>
<asp:TemplateField HeaderText="所属分类">
<ItemTemplate>
<asp:CheckBox runat="server" id="chk1" />
</ItemTemplate>
</asp:TemplateField>
...
</Columns>
</asp:GridView>

二、对控件进行操作
GridView的RowDataBound事件:
if (e.Row.RowType == DataControlRowType.DataRow)
{
CheckBox chk = (CheckBox)e.Row.FindControl("chk1");
//chk就是CheckBox对象,你可对其进行任意操作
}
khijfv2008 2007-04-07
  • 打赏
  • 举报
回复
在 <Columns>```</Columns>中加入
<asp:TemplateField >
<ItemTemplate>
<asp:CheckBox ID="chk1" runat="server" Text='<%#Eval("字段名") %>'
/>
</ItemTemplate>
</asp:TemplateField>
xiaoqhuang 2007-04-07
  • 打赏
  • 举报
回复
如果你仅仅只要添加checkbox的话,我有个简单的方法。
首先在数据源上添加一列,类型为bool型
示例代码:
    DataTable dt = new DataTable();
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("check", typeof(bool));
for (int i = 0; i < 10; i++) {
dt.Rows.Add(new object[] { i, true });
}
GridView1.DataSource = dt;
GridView1.DataBind();
这样,绑定后的GridView就有一列CheckBox了,但是他是不可用的,还须要手动改成可选的
在RowCreated事件里,将CheckBox改成可用的
示例:
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e) {
foreach(TableCell cell in e.Row.Cells)
{
if (cell.Controls.Count > 0) {
CheckBox c = (CheckBox)cell.Controls[0];
if (c != null)
c.Enabled = true;
}
}
}
fxqyyzg 2007-04-07
  • 打赏
  • 举报
回复
在后台GridView_RowDataBound事件中
CheckBox cbx = e.Row.FindControl("cbxName") as CheckBox;
try
{
//绑定选中CheckBox 客户端ID
cbx.Attributes.Add("onclick", "ChangeGet(" + cbx.ClientID + ")");
}
catch
{
}
前台js脚本代码
<script language="javascript">
function ChangeGet(SelectCheckBox)
{
//找到页面所有 input
var objs = document.getElementsByTagName("input");
for(var i=0; i<objs.length; i++)
{
//找到input中的checkbox
if(objs[i].type.toLowerCase() == "checkbox" )
//所有checkbox为false
objs[i].checked = false;
}
//找到选中checkbox
var SelectCheckBoxID=SelectCheckBox.id;
//选中checkbox为true
document.getElementById(SelectCheckBoxID).checked = true;
}

</script>





或者:


在后台GridView_RowDataBound事件中
CheckBox cbx = e.Row.FindControl("cbxName") as CheckBox;
try
{
//绑定选中CheckBox 客户端ID
cbx.Attributes.Add("onclick", "ChangeGet(this)");
}
catch
{
}
前台js脚本代码
<script language="javascript">
function ChangeGet(SelectCheckBox)
{
//找到页面所有 input
var objs = document.getElementsByTagName("input");
for(var i=0; i<objs.length; i++)
{
//找到input中的checkbox
if(objs[i].type.toLowerCase() == "checkbox" )
//所有checkbox为false
objs[i].checked = false;
}
//选中checkbox为true
SelectCheckBoxID.checked = true;
}

</script>
tl_pear 2007-04-07
  • 打赏
  • 举报
回复
http://lovecherry.cnblogs.com/archive/2005/03/25/125526.aspx

62,254

社区成员

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

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

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

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