2012-02-23 56 views
0

我有一个GridView,有一些列。如果在我的数据库中存在一个值,我的gridview中的单元格必须更新自己的值。如何在我的GridView中编辑单元格(如果某些要求为真)

例如:

 1  2  
1 - Lucas Delete 
2 - Drake Delete 
3 - Jimmy Update/Delete 

如果吉米在我的数据库存在,那么我必须把“更新/删除”在我的第二列,但如果点击该“更新”标签,我称之为JavaScript的。我怎样才能做到这一点 ?它可以通过Sql完成?

我的后台代码:

protected void carregaGrid() 
     { 
      Utilidade.QuebraToken tk = new Utilidade.QuebraToken(); 
      string Credenciada = tk.CarregaToken(1, Request.Cookies["token"].Value); 
      string Proposta = string.Empty; 
      string select = string.Empty;   

       select = "SELECT San_Proposta.Proposta_Id, San_Proposta.DataHora, San_Proposta.ValorProposta, San_Proposta.Comentario, " 
        + "San_Usuario.NomeCompleto, San_Credenciada.Apelido, San_StatusProposta.Descricao, " 
        + "(SELECT COUNT(*) " 
        + "FROM San_PropostaConversa " 
        + "WHERE San_PropostaConversa.Proposta_Id = San_Proposta.Proposta_Id " 
        + "AND San_PropostaConversa.Credenciada_Id = San_Proposta.Credenciada_Id) as Numero " 
        + "FROM San_Proposta " 
        + "JOIN San_Credenciada " 
        + "ON San_Proposta.Credenciada_Id = San_Credenciada.Credenciada_Id " 
        + "JOIN San_StatusProposta " 
        + "ON San_Proposta.StatusProposta_Id = San_StatusProposta.StatusProposta_Id " 
        + "JOIN San_Usuario " 
        + "ON San_Proposta.Usuario_Id = San_Usuario.Usuario_Id "; 

       if (Request.QueryString["Imovel_Id"].ToString() != string.Empty) 
       { 
        string imovel = Request.QueryString["Imovel_Id"].ToString(); 
        select += "WHERE San_Proposta.Imovel_Id = " + imovel + " " 
         + "AND San_Proposta.Credenciada_Id = " + Credenciada + " " 
         + "AND San_Proposta.StatusProposta_Id IN (1,2) "; 
       }     
      } 

      select += "ORDER BY San_Proposta.DataHora DESC, Apelido "; 

      neticonn.Conexao c = new neticonn.Conexao(); 
      dsGrid.ConnectionString = c.Con; 
      dsGrid.SelectCommand = select;    
     } 
+1

请显示您的代码 – gideon 2012-02-23 14:56:45

+0

偏离主题,您可能希望在SQL选择字符串中使用@ -quoted逐字字符串文本而不是所有这些+运算符。 – 2012-02-23 15:22:44

回答

0

你必须使用一个Ajax请求,以检查是否在数据库中存在的项目。如果你的请求发现它,你的脚本将返回一个带有true的json,否则返回false。

另一种方法是在你的页面上加载一个javascript数组并在你的值存在时检查它。

我不知道C#,但在PHP会做这样的事情:

<script> 
var values = [ 
<?php 
foreach ($valueFromDatabase as $key => $value) { 
    echo '"'.$value.'"'; 
    //Hack to remove the last comma 
    if ($value == $valueFromDatabase[$valueFromDatabase.length - 1]) { 
     echo ","; 
    } 
} 
?> 
]; 
</script> 

它会使你一个javascript数组看起来像:

var values = ["Lucas","Drake","Jimmy"]; 

你只需要循环上这个数组检查一个元素是否存在或使用javascript函数来做到这一点。

+0

但是,在jQuery中,ajax或JavaScript。我怎样才能做到这一点?这将是我的大问题。 – 2012-02-23 15:09:33

+0

我的第二个解决方案(带有代码示例)对您不利?在页面加载构建JavaScript数组? – Sebastien 2012-02-23 15:29:46

+0

我需要一些动态的,因为名称可以更改 – 2012-02-23 16:02:44

相关问题