c# - 在 asp.net 中从客户端 (Javascript) 刷新 GridView

标签 c# javascript asp.net gridview

我已在网页上添加了 Gridview 控件。

我通过调用 PageMethod 删除任何行(一次一行),如下所示:

    <script type="text/javascript">
      function Delete_Row(){
        PageMethods.DeleteRow(row_id, GetTimeCallback, ErrorHandler, TimeOutHandler);
      }
      GetTimeCallback = function (result) 
      {
         if (result) {
            alert('Row is deleted');
            // I want to refresh the Gridview here
          }
      }
    <script type="text/javascript">

其中“row_id”是行的主键。

它完美地显示了警报,但不会刷新 Gridview 并少删除一行。
我应该编写什么代码来更新gridview?
注意:我不想刷新整个页面。

最佳答案

编写CallBack函数来实现这一点...您可以在 http://msdn.microsoft.com/en-us/library/ms178208 找到回调功能和 http://msdn.microsoft.com/en-us/library/ms178210

编辑:-

   protected void Page_Load(object sender, EventArgs e)
   {
    String cbReference =Page.ClientScript.GetCallbackEventReference(this,
        "arg", "ReceiveServerData", "context");
    String callbackScript;
    callbackScript = "function CallServer(arg, context)" +
        "{ " + cbReference + ";}";
    Page.ClientScript.RegisterClientScriptBlock(this.GetType(),
        "CallServer", callbackScript, true);

   }


 System.IO.StringWriter strDataGridHtml= new System.IO.StringWriter(); 

 public void RaiseCallbackEvent(String eventArgument)
    {
         string idToBeDeleted=eventArgument;
         //Write deleteCode
         //DataBind the Grid
         HtmlTextWriter htwObject = new HtmlTextWriter(strDataGridHtml);
         GridViewControl.RenderControl(htwObject);
    }        

public String GetCallbackResult()
    {
        return strDataGridHtml.ToString();
    }

现在,正如您所看到的,strDataGridHtml 将被发送到 Javascript 函数 ReceiveServerData...

<script type="text/ecmascript">

    function ReceiveServerData(rValue)
    {   
        document.getElementById("divIDWhichEncapsulategridView").innerHTML = rValue;

    }
  </script>

希望这会对您有所帮助...因为我没有完整的代码,所以我无法编写确切的代码...但这应该给您一些如何继续的想法...并且还请仔细阅读“回调”功能,以便充分理解此功能..

关于c# - 在 asp.net 中从客户端 (Javascript) 刷新 GridView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12215384/

相关文章:

c# - 如何降低电子邮件的垃圾邮件分数?

c# - 多线程时循环索引超出范围 ArgumentOutOfRangeException

javascript - 无法在 JavaScript 中查看对象的内容

asp.net - 分页后应用 css media=print 不使用母版页

C# ASP.NET 通过通用方法绑定(bind)控件

c# - 如果我在 catch 中添加一个只有 Debugger.Break() 的 try-catch block

c# - Linq - 使用 linq 在列表中获取不可用的 ID

javascript - Canvas 在 div 下呈现,而不是在 div 上呈现

javascript - Laravel DB::table 增量无法正常工作

c# - 时区看似错误的 JSON ISO 日期