在我的Laravel
Web应用程序中,我正在使用datatable
显示数据。我的表对view
,edit
和delete
有3个动作。
为了进行编辑和查看,我使用了Bootstrap 4
模式。
这是我在模式上进行编辑的ajax请求代码:
$.ajax({
type:'GET',
url:"{{route('user.edit')}}",
data:{'id':user_id},
success:function(data){
var role;
if(data.role_id == 1){
role = 'Admin';
}else if(data.role_id == 2){
role = 'Seller';
}else{
role = 'Publisher';
}
$(header).empty();
$(header).append('<h3>'+data.details.name+'\'s details</h3>');
$('#name').empty();
$('#name').val(data.details.name);
$('#email').empty();
$('#email').val(data.details.email);
$('#contact').empty();
$('#contact').val(data.details.contact);
$('#address').empty();
$('#address').val(data.details.address);
$('#user_id').empty();
$('#user_id').val(data.details.id);
$.each(data.roles, function(index,val){
if(data.details.role_id == val.id)
var selected = 'selected';
$('#role').append('<option '+selected+' value="'+val.id+'">'+val.role_name+'</option>');
});
}
});
现在,第一页的所有内容都可以正常运行。但是,当我在datatable
中搜索内容或通过分页转到另一页时,我的ajax请求不起作用。我正在使用类来调用ajax请求。当我转到另一页面或搜索数据并单击“编辑”时,只有模式打开ajax请求不会启动,并且显示空模式。
我该如何解决这个问题?
答案 0 :(得分:4)
private void btnCreateCategory_Click(object sender, EventArgs e)
{
List<string> FieldNames = new List<string>();
foreach (var item in lstFieldNames.Items)
{
FieldNames.Add(lstFieldNames.Items.ToString());
}
var grpfieldNames = FieldNames.Distinct();
DataTable NewCategory = new DataTable();
NewCategory = CreateTable(grpfieldNames);
dgPreviewAdd.DataSource = NewCategory;
using (SqlConnection Connection = new SqlConnection(
Helper.cnnVal("InventoryManager")))
{
using (SqlCommand command = new SqlCommand("", Connection))
{
command.CommandText = "Create Table tbl" +
NewCategory.TableName.ToString() + "(ID int)";
Connection.Open();
command.ExecuteNonQuery();
Connection.Close();
foreach (DataColumn newColumn in NewCategory.Columns)
{
If(newColumn.ColumnName("ID")
{
}
Else
{
SqlParameter colparam = new SqlParameter();
colparam.ParameterName = "@ColumnName";
colparam.Value = newColumn.ColumnName.ToString();
SqlParameter tblParam = new SqlParameter();
tblParam.ParameterName = "@TableName";
tblParam.Value = "tbl" + NewCategory.TableName.ToString();
command.Parameters.Add(colparam);
command.Parameters.Add(tblParam);
command.CommandText = "dbo.AddCategoryColumns";
command.CommandType = CommandType.StoredProcedure;
Connection.Open();
command.ExecuteNonQuery();
Connection.Close();
}
}
LoadCategory catTableLoad = new LoadCategory();
DataTable catTable = new DataTable();
catTable = catTableLoad.getCategoryTable();
SqlParameter param = new SqlParameter();
param.ParameterName = "@CategoryName";
param.Value = NewCategory.TableName.ToString();
SqlParameter param2 = new SqlParameter();
param2.ParameterName = "@IdNumber";
param2.Value = catTable.Rows.Count + 1;
command.Parameters.Add(param);
command.Parameters.Add(param2);
command.CommandText = "dbo.AddCategory";
command.CommandType = CommandType.StoredProcedure;
Connection.Open();
command.ExecuteNonQuery();
Connection.Close();
}
}
}
事件处理程序仅处理执行代码时dom中存在的那些元素,因此需要使用基于委托的事件处理程序。试试这个