为什么可以';我不能用javascript获取GridView的值吗?
现在我正在寻找一种向gridview动态添加行的方法 这就是我的GridView在HTML中的外观:为什么可以';我不能用javascript获取GridView的值吗?,javascript,c#,asp.net,gridview,Javascript,C#,Asp.net,Gridview,现在我正在寻找一种向gridview动态添加行的方法 这就是我的GridView在HTML中的外观: <asp:GridView ID="gridView" runat="server" AutoGenerateColumns="false"> <Columns> <asp:BoundField AccessibleHeaderText="Zutaten" HeaderText="Zutaten"/>
<asp:GridView ID="gridView" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField AccessibleHeaderText="Zutaten" HeaderText="Zutaten"/>
<asp:BoundField AccessibleHeaderText="Menge" HeaderText="Menge" />
</Columns>
</asp:GridView>
<asp:Button ID="btnSubmit" Text="+" runat="server" CausesValidation="false" OnClientClick="Insert(); return false;"/>
所以表变量总是空的。为什么呢?我忘记了什么?
var table=document.getElementById(“#”)代码>应该传递id,而不是选择器。删除那个散列符号。@FrédéricHamidi sry在粘贴之前忘记删除它。这就是我的GridView在HTML中的样子:
-不,它不是。。。这就是GridView在呈现为HTML之前在ASP中的样子。运行浏览器时,浏览器收到的实际HTML是什么?另外,该脚本是否在ASP页面中?这个部分在呈现后会变成什么-document.getElementById(“”)
?它是否真的与GridView(表)的ID匹配?@GuyPassy我查看了HTML中的文档,似乎那里不存在我的GridView。我不知道为什么。
<script type="text/javascript" defer="defer">
function Insert()
{
var table = document.getElementById('<%=gridView.ClientID%>');
//Get values
var zutat = document.getElementById('<%=tbZutat.ClientID%>'); //this comes from other controls
var menge = document.getElementById('<%=tbMenge.ClientID%>'); //this comes from other controls
//Create Cells
var tr = document.createElement("tr");
var cell = document.createElement("td");
var cell2 = document.createElement("td");
cell.innerHTML = zutat.toString();
cell2.innerHTML = menge.toString();
tr.appendChild(cell);
tr.appendChild(cell2);
table.firstChild.appendChild(tr);
}
</script>
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
SetInitialRow();
}
}
private void SetInitialRow()
{
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("Zutat:", typeof(string)));
dt.Columns.Add(new DataColumn("Menge:", typeof(string)));
//Store the DataTable in ViewState
ViewState["ZutatenTable"] = dt;
gridViewZutaten.DataSource = dt;
gridViewZutaten.DataBind();
}