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

时间:2011-04-10 05:04:14

标签: jquery asp.net jquery-ui asp.net-ajax

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

是否有一种方法可以通过Code Behind和jQuery仅在Datatable(数据集xsd)填充所有字段后显示对话框?

提前感谢您的帮助。这让我困扰了好几个小时。

2 个答案:

答案 0 :(得分:2)

我将采用以下方案:

  1. 当用户点击网格行时,将通过jQuery.ajax发出ajax请求,该请求根据用户的选择获取相应的数据。
  2. jquery.ajax函数有一个onSuccess回调函数,用于激活jqueryUI对话框。
  3. 类似的东西:

    $.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" );
      }
    }
    );
    

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

    服务器端(方法必须是静态的且具有[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/

答案 1 :(得分:1)

如果所有其他方法都失败了,你可以强行说出来:说你的一个字段如下:

<input id='some_field'>

您可以测试是否已填充:

    if ($("#some_field").val() !== "")

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

var fieldLoaded = setInterval( function() {
    if ($("#some_field").val() !== "") {
      clearInterval(fieldLoaded);
      $("#my_dialog").show();  
    }
}, 100);