我的程序传到服务器。(framework不同),结果有js代码不能执行。仔细检查,发现datagrid生成的HTML完全不同:
我机器上的:
<span onclick="javascript:ckme(this);"><input id="DataGTrace__ctl23_LCK" type="checkbox" name="DataGTrace:_ctl23:LCK" /></span>
服务器上的:
<input id="DataGTrace__ctl6_LCK" type="checkbox" name="DataGTrace:_ctl6:LCK" onclick="javascript:ckme(this);" />___注意,javascript放在checkbox里了,而且没有span其中的checkbox是
<ItemTemplate>
<asp:CheckBox ID="LCK" Runat="server" Checked='<%# CkFlow(DataBinder.Eval(Container.DataItem, "flowid")) %>' >
</asp:CheckBox>
</ItemTemplate>我在绑定时追加js语句,用来确定checkbox单选,结果发现一个调用在span中,一个调用在checkbox中。真奇怪!JS:
function ckme(tck){
var i;
var td;
if (tck.childNodes[0].checked==false)
return false;
for (i=0;i<document.all.DataGTrace.rows.length;i++)
{
td=window.document.all.DataGTrace.rows(i).cells(0);
if (td.childNodes.length!=0)
{
try
{
if (td.childNodes[0].childNodes.length!=0)
{
td.childNodes[0].childNodes[0].checked=false;
}
}
catch (e)
{
}
}
}
tck.childNodes(0).checked=true;
}