说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

我在datagrid里添加一个checkbox模板列,那我怎么在javascript中怎么样能实现,我选中了一个checkbox,那这个datagrid的一行颜色就改变?

编辑:说三道四文库 发布时间:2018-07-22 06:47
HTML文档下载 WORD文档下载 PDF文档下载
我在datagrid里添加一个checkbox模板列,那我怎么在javascript中怎么样能实现,我选中了一个checkbox,那这个datagrid的一行颜色就改变? 其它的行都还原到原来的颜色,而且其它的checkbox都不选中?
http://xml.sz.luohuedu.net/xml/ShowDetail.asp?id=FF130C7F-3650-4DA6-8943-8AA4AF3E3459
js的实现
<table id=mxh>
<tr><td><input type=checkbox name=b></td><td>a</td></tr>
<tr><td><input type=checkbox name=b></td><td>a</td></tr>
<tr><td><input type=checkbox name=b></td><td>a</td></tr>
<tr><td><input type=checkbox name=b></td><td>a</td></tr>
</table>
<script>
window.document.onclick=aa
function aa()
{
if(event.srcElement.tagName=="INPUT")
{
for(i=0;i<document.all.mxh.rows.length;i++) document.all.mxh.rows[i].bgColor="#FFFFFF"
event.srcElement.parentElement.parentElement.bgColor="#FF8899"
}
}
</script>
我想用javascript实现,
 孟子E章 的方法总是要刷新!
孟子E章

   你的方法(js)不能把原来的选择过的行反回原来的颜色
试试
在ItemDataBind事件里
e.Item.Attributes.Add("onmouseover","this.style.backgroundColor='Silver'");
e.Item.Attributes.Add("onmouseout","this.style.backgroundColor='white'");
 
haoliqi(学习男孩) 

    你的方法就没有被选中的提示效果了!
<tr><td><input type=checkbox name=b0 onclick="c(this.checked)" ></td><td>a</td></tr>
<tr><td><input type=checkbox name=b1 onclick="c(this.checked)" ></td><td>a</td></tr>
<tr><td><input type=checkbox name=b2 onclick="c(this.checked)" ></td><td>a</td></tr>
<tr><td><input type=checkbox name=b3 onclick="c(this.checked)" ></td><td>a</td></tr>
</table>
<script>

function c(flag)
{
if (document.all.b0!=null){
      document.all.b0.checked=true
      document.all.mxh.rows[0].bgColor="#f0f5ff"
       }
       
      if (document.all.b0!=null){
      document.all.b0.checked!=false
      document.all.mxh.rows[0].bgColor="#f6f5ff"

      }
if (document.all.b2!=null){
      document.all.b2.checked=flag
      }
if (document.all.b3!=null){
      document.all.b3.checked=flag
      }
if (document.all.b4!=null){
      document.all.b4.checked=flag
      }

}

</script>
guoyan19811021(吉祥) :

我的DataGrid 是 WebControls ,不能写onclick事件,
而且用document.all.DataGrid1.rows[0].bgColor="#f0f5ff" 不能进行设置颜色!
<table id=mxh>
<tr bgcolor="green"><td><input type=checkbox name=b></td><td>a</td></tr>
<tr bgcolor="green"><td><input type=checkbox name=b></td><td>a</td></tr>
<tr bgcolor="green"><td><input type=checkbox name=b></td><td>a</td></tr>
<tr bgcolor="green"><td><input type=checkbox name=b></td><td>a</td></tr>
</table>
<script>
window.document.onclick=aa
function aa()
{
if(event.srcElement.tagName=="INPUT")
{
for(i=0;i<document.all.mxh.rows.length;i++) document.all.mxh.rows[i].bgColor="green"
event.srcElement.parentElement.parentElement.bgColor="#FF8899"
}
}
</script>
<table id=mxh>
<tr bgcolor="green" oldcolor="green"><td><input type=checkbox name=b></td><td>a</td><td>a</td><td>a</td><td>a</td></tr>
<tr bgcolor="navy" oldcolor="navy"><td><input type=checkbox name=b></td><td>a</td><td>a</td><td>a</td><td>a</td></tr>
<tr bgcolor="orange" oldcolor="orange"><td><input type=checkbox name=b></td><td>a</td><td>a</td><td>a</td><td>a</td></tr>
<tr bgcolor="#ddeedd" oldcolor="#ddeedd"><td><input type=checkbox name=b></td><td>a</td><td>a</td><td>a</td><td>a</td></tr>
</table>
<script>
window.document.onclick=aa
function aa()
{
if(event.srcElement.tagName=="INPUT")
{
for(i=0;i<document.all.mxh.rows.length;i++) document.all.mxh.rows[i].bgColor=document.all.mxh.rows[i].oldcolor
event.srcElement.parentElement.parentElement.bgColor="#FF8899"
}
}
</script>
模板:
-----------------
<asp:TemplateColumn>
  <ItemTemplate>
   <table>
    <tr id="T_ID"> // 这儿的ID应该和CheckBox的ID有些相似,这样好处理
     <td><input type="checkbox" id="C_ID" onclick=f(this)></td>
     <td>你的内容</td>
   。。。。。。。。。
    </tr>
   </table>
  </ItemTemplate>
</asp:TemplateColumn>

function f(obj)
{

   id=obj.id;
   id="T"+id.substring(1);
   tobj=document.all(id);
   if(obj.checked)
     tobj.bgColor="新的颜色";
   else
     tobj.bgColor="原来的颜色";  
   
}
非常感谢各位!
    我的网格代码是这样的,各位继续帮我看看!

<asp:datagrid id="DataGrid1" runat="server" AllowSorting="True" GridLines="Vertical" BackColor="White"
BorderColor="#999999" BorderWidth="1px" CellPadding="3" BorderStyle="None">
<SelectedItemStyle Font-Size="10pt" Font-Bold="True" ForeColor="White" BackColor="#008A8C"></SelectedItemStyle>
<EditItemStyle Font-Size="10pt"></EditItemStyle>
<AlternatingItemStyle Font-Size="10pt" BackColor="Gainsboro"></AlternatingItemStyle>
<ItemStyle Font-Size="10pt" Wrap="False" ForeColor="Black" BackColor="#EEEEEE"></ItemStyle>
<HeaderStyle Font-Size="10pt" Wrap="False" ForeColor="White" BackColor="#000084"></HeaderStyle>
<FooterStyle Font-Size="10pt" ForeColor="Black" BackColor="#CCCCCC"></FooterStyle>
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:CheckBox id="chkSelect" runat="server" OnCheckedChanged="ChkSlt_Changed"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Modify"></asp:TemplateColumn>
</Columns>
<PagerStyle Font-Size="10pt" HorizontalAlign="Center" ForeColor="Black" BackColor="#999999" Mode="NumericPages"></PagerStyle>
</asp:datagrid>


其它列都是邦定DataSet动态生成的,CheckBox 是服务器控件 id 名为 "chkSelect",以上各位的我都有试过,主要问题就是先前选择过的不能设置成原来的背景颜色。
你可以用样式来做;样式里加入行为(hta),应该可以解决
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘