问题:在选中repeater中的某一行后,怎么对该行进行修改操作?修改button在repeater控件外,repeater中没有其他操作控件。
曾想着设置一个CheckBox隐藏控件,用Javascript来操作CheckBox的Checked属性。但我查看了源文件,CheckBox的ID是动态变化的。但我不知道在javascript中怎么去取得选中行的CheckBox的ID。请指点下迷津,万分感谢!ASP.NETJavaScriptCheckBox
曾想着设置一个CheckBox隐藏控件,用Javascript来操作CheckBox的Checked属性。但我查看了源文件,CheckBox的ID是动态变化的。但我不知道在javascript中怎么去取得选中行的CheckBox的ID。请指点下迷津,万分感谢!ASP.NETJavaScriptCheckBox
CheckBox绑定OnClick事件Cbo_Click(this)function Cbo_Click(obj){
alert(obj.id);
}
1.repeater中没有其他操作控件。没有CheckBox控件。
2.CheckBox控件只是自己设想的一个隐藏控件,这只是自己的想法。
3.CheckBox控件没有OnClick事件
这样的id 确实是不变的,但是javascript 操作的也只能是第一个checkbox。还是需要id动态变化才行。非常感谢,我已经自己解决了。
<div style="visibility:hidden;"><input id="<%#Container.ItemIndex +1 %>" name="chkitem" type="checkbox" value="<%#Eval("Id")%>"/></div>
js部分:function tabtrclick(m){ // 获取repeater控件中的table中所有tr的信息
var trStr=document.getElementById("zidiantab").getElementsByTagName("tr"); // 获取repeater控件中所有checkbox的信息
var chkStr=document.getElementById(m);
var chkinput = document.getElementsByTagName("input"); // 所有checkbox不选中
for(var i=0; i<chkinput.length; i++) {
if(chkinput[i].type=="checkbox") {
chkinput[i].checked = false;
}
}
// 清除选中行变色
for(var i=0;i<trStr.length;i++) {
trStr[i].style.background = "#ffffff";
}
// 选中行变色
trStr[m].style.background = "#FC8E5E";
// 选中行checkbox选中
chkStr.checked = true;
}
function ischoosed(){ var chkinput = document.getElementsByTagName("input");
var flg = false;
// 遍历所有checkbox,有选中的返回true并跳出循环
for(var i=0; i<chkinput.length; i++) {
if(chkinput[i].type=="checkbox" && chkinput[i].checked){
flg = true;
break;
}
}
if (flg) {
// 有checkbox被选中
return true;
}else{
// 没checkbox被选中
alert("请在列表中选择您要修改的对象!");
return false;
}
}
cs部分: protected void btnModify_Click(object sender, EventArgs e)
{
string str = Request["chkitem"].ToString();
Response.Redirect("DataModify.aspx?Id="+str);
}
请多多指教!