2011-08-22 95 views
1

我有一个链接按钮DataGrid编辑网格数据,我使用OnClientClick事件加载模态窗体,我也是使用GRID的事件函数onSelectedIndexChanged将编辑数据加载到控件。见下文是否有可能在执行客户端代码之前执行服务器端代码在ASP.Net

protected void GetSelectedData(Object src, EventArgs e) 
{ 
    String Team_Id = GridView1.DataKeys[GridView1.SelectedIndex].ToString(); 
    using (MySqlConnection DbConnection = new MySqlConnection(ConfigurationManager.AppSettings["ConnectionStr"])) 
    { 
     DbConnection.Close(); 
     string cmdText = "SELECT Team_Id,Team_code,Team_Name FROM Team_Details WHERE Team_Id=?Id"; 
     MySqlCommand cmd = new MySqlCommand(cmdText, DbConnection); 
     cmd.Parameters.Add("?Id", MySqlDbType.Int32).Value = Convert.ToInt32(Team_Id); 
     DbConnection.Open(); 
     MySqlDataReader DR = cmd.ExecuteReader(); 
     while (DR.Read()) 
     { 
      this.txtTeamCode.Text = DR.GetValue(1).ToString(); 
      this.txtTeamName.Text = DR.GetValue(2).ToString(); 

     } 
    } 
} 

看到用于调用模态窗口中的客户端代码的服务器端代码,

 function EditDialog(){ 
     $('#newTeam').dialog("open"); 
     alert(document.Team.txtTeamCode.value);   
     document.getElementById("cvCode").innerHTML = ''; 
     document.Team.txtTeamCode.focus();     
    }   

的问题是,虽然坡平了模态形式,领域(团队代码&队名)变得空白。请提供解决方案来解决此问题。

+0

您可以在服务器代码的最后使用RegisterStartupScript –

+2

也可能想重新考虑您的帖子的标题,因为服务器端代码_always_首先在客户端代码__在客户端_之前执行__服务器_。 – nnnnnn

回答

3

您可以使用AJAX请求来填充模式弹出窗口的字段 - 调用一个对象/服务来返回所需的数据项,然后相应地修改GUI。

看看JQuery的get()函数。为了可用性,最好是异步执行此操作。

Here's a decent tutorial提供了一个可能的实现。

HTH

0

您可以使用HttpHandlers的或作为上一个用户提到使得Ajax调用。 您也可以使用Pagemethods从javascript调用服务器端代码。

相关问题