在数据库信息填充控件之后打开一个jQueryUI对话框



今晚我将使用c#和jQuery UI对话框。我在用户管理页面中添加了一个对话框div,使管理员能够编辑用户信息(如地址、电话、aspnetdb等)。当管理员单击网格视图中的一行时,对话框被激活,但是控件(文本框和下拉框)需要几秒钟的时间来填充信息。我希望对话框能够显示用户的信息,允许对控件进行更改,允许管理员保存数据,然后更新更新面板内的网格视图。

是否有一种方法,通过代码背后和jQuery只显示对话框后,所有的字段已填入数据表(dataset xsd)?

提前感谢你的帮助。

我会选择以下场景:

  1. 当用户单击网格行时,将通过jQuery.ajax发出ajax请求,该请求将根据用户的选择获取适当的数据。
  2. jquery.ajax函数有一个onSuccess回调函数,用来激活jqueryUI对话框。

例如:

$.ajax({
  url: "myUrl.aspx/MethodName",
  type: "POST",
  data: ({id : my_grid_selected_id}),
  success: function(result){
   // Do the dialog fields population here.
   $( "#myDialog" ).dialog( "open" );
  }
}
);

UPDATE:下面是如何在对话框的控件中填充数据。我将试着用一个例子来解释它。

服务器端(方法必须是静态的,并且具有[WebMethod()]属性)。

public class CustomData
{
    public string name;
    public int id;
}
[WebMethod()]
public static CustomData ReturnCustomData(int MyID)
{
    CustomData MyData = new CustomData();
    MyData.name = "Custom name";
    MyData.id = MyID;
    return MyData;
}

客户端:

$.ajax({
  url: "myUrl.aspx/ReturnCustomData",
  type: "POST",
  data: ({MyID : my_grid_selected_id}),
  success: function(result){
  $("your_name_textbox_identifier").val(result.name);
  $("your_id_textbox_identifier").val(result.id);
  $( "#myDialog" ).dialog( "open" );
  }
});  

要填充下拉列表,请查看http://www.isolutionteam.co.uk/how-to-populate-aspnet-dropdown-list-from-database-by-passing-radio-button-lists-selected-value-as-parameter-with-jquery/

如果以上所有方法都失败了,您可以强制执行:假设您的其中一个字段看起来像:

<input id='some_field'>

你可以测试它是否被填充了:

<>之前If ($("#some_field").val() !== ")之前

你可以用计时器反复检查:

<>之前var fieldLoaded = setInterval(function() {If ($("#some_field").val() !== ") {clearInterval (fieldLoaded);$ (" # my_dialog "),告诉();}}, 100);

相关内容

最新更新