Я пытаюсь вызвать функцию codebehind с javascript. Мне нужно сделать некоторые операции с моим gridview. Вот мой JavaScript:Вызвать функцию codebehind из метода javascript
function hideColumn() {
var gridrows = $("#GridViewHdcvi tbody tr");
AddTeklif.RemoveTextBoxes();
for (var i = 0; i < gridrows.length; i++) {
gridrows[i].cells[5].style.display = "none";
}
return false;
};
И мой отделенный код:
[WebMethod]
public static void RemoveTextBoxes()
{
foreach (GridViewRow row in GridViewHdcvi.Rows)
{
TextBox txb = (TextBox)row.FindControl("txtAdet");
string adet = txb.Text;
txb.Visible = false;
Label lbl = (Label)row.FindControl("LblAdet");
lbl.Text = adet+" $";
}
}
У меня есть ошибки вроде «Ссылки на объект требуется для нестатических полей, методы или свойств CRM.AddTeklif. GridViewHdcvi 'в' GridViewHdcvi.Rows '. Когда я вызываю ошибку метода «public void RemoveTextBoxes()», но метод не работает, поскольку он не является статичным.
Вы не может получить доступ к элементам управления экземпляром этой страницы из WebMethod. Вы даже не можете использовать '(Page) HttpContext.Current.Handler'. Поэтому либо используйте postback, либо попытайтесь сделать это с помощью чистого javascript/jquery. –
У меня была подобная загадка, и, как говорят другие, я думаю, что это почти невозможно; если интересно, см. http://stackoverflow.com/questions/32594884/how-can-i-invoke-a-server-side-event-from-jquery-sharepoint-2010 –