我有一段代码如下:
var dg = document.getElementById("DataGrid1");
var th = dg.rows[0];
th.cells[4].value =newValue;
我想把页面中DataGrid1的某行某列的单元格赋值,可是如上所写代码 好像不行 单元格的值不变的 请高人指点
var dg = document.getElementById("DataGrid1");
var th = dg.rows[0];
th.cells[4].value =newValue;
我想把页面中DataGrid1的某行某列的单元格赋值,可是如上所写代码 好像不行 单元格的值不变的 请高人指点
var th = dg.getElementsByTagId("tr")[0];
th.childNodes[4].innerText = newValue;
<head>
<title>test</title>
<script language="javascript">
function test()
{
document.all("mytable").rows[1].cells[1].innerText = "hello";
}
</script>
</head>
<body>
<table id="mytable" width="200" border="1">
<tr>
<td>00</td>
<td>01</td>
<td>02</td>
</tr>
<tr>
<td>10</td>
<td>11</td>
<td>12</td>
</tr>
</table>
<input type="button" onclick="test()" value="赋值">
</body>
</html>
var th = dg.rows[0];
th.cells[4].children[0].innerText =newValue;每次提交服务器端后
用((Label) DataGrid1.Items[0].FindControl("lblPLIFZ")).Text.Trim()得到的还是原来的值,并非newValue,这是怎么回事呢?望达人指教,小弟在线急等,跪谢
你在客户端用javascript改变的是td中间的类容,提交到服务器没有任何变化的!除非你把datagrid变成编辑状态,用文本框提交的内容服务器才能接收到
可是在这里我又遇到了一点小麻烦,望楼上再不吝赐教 小弟拜谢
我的Datagrid里的TemplateColumn是这样子的:<asp:TemplateColumn HeaderText="Days">
<ItemTemplate>
<asp:Label id=lblPLIFZ runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.PLIFZ") %>'></asp:Label>
<asp:TextBox id="txtPLIFZ" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.PLIFZ") %>' Visible=false>
</asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>也就是我在ItemTemplate里面放了两个控件,可是我用先前的js去抓第二个控件时却抓不到
var dg = document.getElementById("DataGrid1");
var th = dg.rows[0];
th.cells[4].children[0].innerText =newValue;
th.cells[4].children[1].value = newValue //这行不是应该要抓到TextBox吗? 可是为什么不行呢? 我应该怎样去得到这个TextBox?
多行的话先这样写
<asp:TextBox id="txtPLIFZ_<%# Container.ItemIndex+1%>" runat="server"...
取的时候用 document.all("txtPLIFZ_"+i).value = newValue
第几条记录,i就写几呗。
试试~~
得到错误信息:
分析器错误信息: “<%# Container.ItemIndex+1%>”不是有效标识符。我曾试着在DataGrid的ItemDataBound方法里设置控件的ID,代码如下:if(e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
e.Item.Cells[3].Controls[1].ID = e.Item.Cells[1].Text.Trim()+e.Item.Cells[2].Text.Trim();
Label lbltest = (Label)e.Item.Cells[3].Controls[1];
e.Item.Cells[3].Style.Add("CURSOR","hand");
e.Item.Cells[3].Attributes["ondblclick"] = "javascript:showVendor('"+e.Item.Cells[1].Text.Trim()+"','"+e.Item.Cells[2].Text.Trim()+"','"+lbltest.Text.Trim()+"','"+e.Item.Cells[4].Text.Trim()+"','"+e.Item.Cells[5].Text.Trim()+"','"+e.Item.ItemIndex+"')";
}这样子在Datagrid单元格里每个动态绑定的Label都有了一个唯一的ID,(我这里cell1和cell2的值加起来就是主键)可是这样子在js里面用document.all(e.Item.Cells[1].Text.Trim()+e.Item.Cells[2].Text.Trim())方法琮是得不到其中的Label控件
望达人指点