日期:2014-05-19  浏览次数:20441 次

Gridview中如何入加一个模板,在模板中加入一个命名为chk1的checkbox的代码.
我想在页加载的时候指定datasource同时加一个模板,在模板中加入一个命名为chk1的checkbox,各位英雄指点一下代码如何写.谢谢各位.

------解决方案--------------------
在后台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>

------解决方案--------------------
如果你仅仅只要添加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;
}
}
}
------解决方案--------------------
在 <Columns> ``` </Columns> 中加入
<asp:TemplateField >
<ItemTemplate>
<asp:CheckBox ID= "chk1 " runat= "server " Text= ' <%#Eval( "字段名 ") %> '
/>
</ItemTemplate>
</asp:TemplateField>
------解决方案--------------------
一、在模版列中放置控件
<asp:GridView ID= "gv " runat= "server ">
<Columns>
<asp:TemplateField HeaderText= "所属分类 ">
<ItemTemplate>
<asp:CheckBox runat= "serve