Я пытался установить SeletCommand asp: SqlDataSource внутри статического метода, но он показал мне сообщение об ошибке «System.NullReferenceException: ссылка на объект не установлена на экземпляр объекта».
namespace TestSPA
{
public partial class editor1 : System.Web.UI.Page
{
[WebMethod]
[ScriptMethod]
public static string SelectDataFromSearch(string keyWord)
{
string result = "";
Model.MyDataConnection mdc1 = new Model.MyDataConnection();
OleDbConnection conn1 = new OleDbConnection();
OleDbCommand cmd1 = new OleDbCommand();
conn1.ConnectionString = mdc1.ConnectonString;
cmd1.Connection = conn1;
try
{
conn1.Open();
editor1 ed = new editor1();
//Here is where the error line.
ed.dsWSE.SelectCommand = "SELECT * FROM [News] WHERE [Title] LIKE '%" + keyWord + "%' OR [Intro] LIKE '%" + keyWord + "%' OR [Story] LIKE '%" + keyWord + "%' ORDER BY [DateModified] DESC";
//Here is where the error line.
conn1.Close();
result = keyWord;
}
catch (Exception err)
{
result = err.ToString();
}
return result;
}
}
}
И ниже мой jQuery для вызова вышеуказанного серверного метода с использованием Ajax
$("#TxbSearch").on("keyup", function (e) {
e.preventDefault();
var text = $(this).val();
console.info(text);
$.ajax({
type: "POST",
url: "editor.aspx/SelectDataFromSearch",
data: "{'keyWord':'" + text + "'}",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (res) {
console.log(res.d);
$("#gvNews").load(location.href + " #gvNews");
},
error: function (xhr, status, error) {
$("#model-error-message").html(error);
$("#ModelError").modal('show')
console.log(error);
}
});
});
. #TxbSearch - это идентификатор TextBox, который должен передать свое значение в имя метода сервера «SelectDataFromSearch», в то время как событие «keyup»происходит, затем обновите GridView, чтобы показать результаты поиска.
Пожалуйста, помогите.