私はJavaScriptに非常に慣れていないので、これに困惑しています。をjs 関数に送信ClientID
しようとしています。Control
次に、関数は要素を見つけて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);
}
ボタンをクリックするたびに、何も起こりません。sent パラメータを に変更すると<%#variableDDL.ClientID%>
、同じことが行われます。'<%=variableDDL.ClientID%>'
またはに変更すると'<%#variableDDL.ClientID%>'
、オブジェクトが見つからないため、null ポインター エラーが発生します。スクリプトは正しく参照されており、パラメーターを受け入れずにアラートを生成するように変更すると起動します。私が間違っていることを知っている人はいますか?
編集: 要求されたコードを以下に示します。
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%>);"