我对 JavaScript 非常陌生,对此我感到很困惑。我正在尝试将ClientID
a发送Control
到 js 函数。然后该函数应该找到元素并获取Control's
值。注意:我正在使用母版页,并且Control
我正在传递的ClientID
是UserControl
.
ASP:
//code here
<asp:TableCell runat="server">
<asp:DropDownList runat="server" ID="variableDDL"/>
//some ListItems
</asp:Tablecell>
//more cells here
<asp:TableCell runat="server">
<asp:ImageButton runat="server" ID="iButton" ImageUrl="~/Images/iButton.png" OnClientClick="iButtonClick(<%=variableDDL.ClientID%>);"/>
</asp:TableCell>
//code here
.js:
function iButtonClick(ClientID)
{
var v = document.getElementById(ClientID);
var val = v.value;
alert(val);
}
每次我点击按钮,什么都没有发生。将发送的参数更改为<%#variableDDL.ClientID%>
做同样的事情。将其更改为'<%=variableDDL.ClientID%>'
或'<%#variableDDL.ClientID%>'
给出空指针错误,因为它找不到对象。该脚本被正确引用,如果我将其更改为不接受参数并仅产生警报,它就会触发。有人知道我在做什么错吗?
编辑:请求的代码如下所示。
ASP 用户控件:
protected void Page_Init(object sender, EventArgs e) {
DataTable fields = (DataTable) Session["fields"];
for(int i = 0; i < fields.Rows.Count; i++)
{
variableDDL.Items.Add(new ListItem(fields.Rows[i]["Field"].ToString(), fields.Rows[i]["Field"].ToString();
}
}
渲染的 OnClick HTML:
'<%=variableDDL.ClientID%>'
产生
onclick="iButtonClick('<%=variableDDL.ClientID%>');"
<%=variableDDL.ClientID%>
生产
onclick="iButtonClick(<%=variableDDL.ClientID%>);"
'<%#variableDDL.ClientID%>'
生产
onclick="iButtonClick('<%#variableDDL.ClientID%>');"
<%#variableDDL.ClientID%>
生产
onclick="iButtonClick(<%#variableDDL.ClientID%>);"