js から codebehind に情報を渡そうとしています。js の最後にブレークポイントを設定する場合 - (Firefox)デバッガー(-js) はinput
の値が設定されていることを示しますが、(Firefox)インスペクター(-html) は設定されていないことを示します。コードビハインドに到達したとき-設定されていません。なんで?
jsで値を設定し、コードビハインドを呼び出すボタンをクリックします。
<script type="text/javascript">
function doit(s, input, button)
{
var i = document.getElementById(input);
i.innerHTML = s;
var b = document.getElementById(button);
b.click();
}
</script>
非表示の入力とボタン (コードビハインドを呼び出すため) と、これらすべてを開始するためのボタン、および結果を表示するための div を含むhtml :
<asp:Button ID="Button1" runat="server" Text="Test" OnClick="Button1_Click" />
<div style="display: none;">
<input id="info" runat="server" />
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" />
</div>
<div id="result" runat="server">
</div>
js を呼び出して結果を表示するためのC# コードビハインド:
protected void Button1_Click(object sender, EventArgs e)
{
ClientScriptManager cs = Page.ClientScript;
Type pageType = GetType();
cs.RegisterStartupScript(
GetType(),
"aName",
"doit('abc', '" + info.ClientID + "','" + Button2.ClientID + "');",
true);
}
protected void Button2_Click(object sender, EventArgs e)
{
result.InnerText = info.Value;
}