У меня есть gridview на странице asp.net. И каждый столбец имеет кнопку, по щелчку которой я открываю всплывающее окно с помощью jquery.
protected void gvExpiry_RowDataBound(object sender, GridViewRowEventArgs e)
{
if ((e.Row.RowType == DataControlRowType.DataRow))
{
Button tmp = new Button();
tmp = ((Button)e.Row.FindControl("btnTest"));
tmp.Attributes["onclick"] = "javascript:return MyFunc(" + gvExpiry.DataKeys[e.Row.RowIndex].Value.ToString() + "," + gvExpiry.DataKeys[e.Row.RowIndex].Value.ToString() + ")";
}
}
$("[id*=btnTest]").live("click", function () {
$("#modal_dialog").dialog({
close:function(event, ui){
$(this).dialog("close");
},
title: "Please enter tag",
buttons: {
Ok: function MyFunc(fileName, tag) {
//alert(fileName);
var etag = $("#<%= txttag.ClientID %>").val();
alert(typeof fileName);
alert(typeof Etag)
//other functionality
},
modal: true
});
return false;
});
Но в моем MyFunc (fileName, Etag) я не получаю правильные значения параметров. Я получаю объект и неопределенное значение
Как я могу получить правильное значение моих параметров
Попробуйте добавить одинарные кавычки в вызове функции, функция считает, что текст является переменными, а не строками.
tmp.Attributes["onclick"] = "javascript:return MyFunc('" + gvExpiry.DataKeys[e.Row.RowIndex].Value.ToString() + "','" + gvExpiry.DataKeys[e.Row.RowIndex].Value.ToString() + "')";
gvExpiry.DataKeys[e.Row.RowIndex]["your_datakeyname"].Value