Передайте переменную Javascript в ASP.NET CommandArgument
Не похоже, что это возможно, но есть ли способ передать переменную javascript в поле CommandArgument? Я пытаюсь передать переменную unit_id, чтобы код мог получить доступ к значению.
Вот мой код aspx:
<script type="text/javascript">
var facility_id = 50;
</script>
<asp:Button CssClass="btn btn-primary btn-lg" ID="submitBtn" runat="server" Text="Create EDD" CommandArgument='<% facility_id.Value %>' OnClick="submitBtn_Click" />
1 ответ
Как и следовало ожидать, CommandArgument
это свойство на стороне сервера Button
управление сервером, и вы не можете назначить его из клиентского кода, потому что он не отображает соответствующий HTML-атрибут. Однако вы можете настроить обратную передачу со стороны клиента с помощью __doPostBack()
функционировать как предусмотрено ниже:
<script>
var facility_id = 50;
$('#something').click(function () {
__doPostBack("<%= submitBtn.UniqueID %>", facility_id);
});
</script>
Код позади
protected void submitBtn_Click(object sender, EventArgs e)
{
// assumed 'facility_id' is an int? or Nullable<int> property,
// make sure the event argument is parseable to integer value
var evArg = int.Parse(Request.Form["__EVENTARGUMENT"]);
facility_id = evArg;
}
Если вы не можете использовать __doPostBack()
функция, потому что она не определена на странице, то вы можете обрабатывать PreRender
событие этой страницы и предоставить GetPostBackEventReference()
метод:
protected void Page_PreRender(object sender, EventArgs e)
{
ClientScript.GetPostBackEventReference(submitBtn, string.Empty);
}