【问题标题】:doPostBack is undefined when programmatically adding button to gridview以编程方式将按钮添加到 gridview 时,doPostBack 未定义
【发布时间】:2013-12-09 16:27:46
【问题描述】:

我正在以编程方式填充 GridView 并向最后一行添加一个按钮:

ButtonField bc = new ButtonField();
bc.ButtonType = ButtonType.Button;
bc.Text = "Edit";
bc.CommandName = "EditAsset";
grid.Columns.Add(bc);

在标记中我指定了一个处理程序:

<asp:GridView ID="gvListView" OnRowCommand="gvListView_RowHandler" runat="server"></asp:GridView>

我将处理程序添加到代码隐藏中:

protected void gvListView_RowHandler(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "EditAsset")
    {

    }
}

当我运行它并单击网格视图中的按钮时,我收到一个 __doPostBack 未定义的 JavaScript 错误。有谁知道为什么不生成那个js?

动态生成的按钮调用如下所示:

onclick="javascript:__doPostBack(&#39;lvStuff$gvListView&#39;,&#39;EditAsset$0&#39;)"

编辑:doPostBack 是在页面上生成的,但它周围有一些评论?

//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
    theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
//]]>

【问题讨论】:

    标签: c# asp.net .net gridview buttonfield


    【解决方案1】:

    嗯,我觉得很傻。问题是我试图在标题中错误地结束我之前的脚本标签。我正在这样做:

    <script type="text/javascript" src="jslib/jquery-1.9.1.js" />
    

    而不是这个:

    <script type="text/javascript" src="jslib/jquery-1.9.1.js"></script>
    

    导致 javascript 失败的原因。没有意识到您不能以 xml 方式关闭脚本标签。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-24
      • 1970-01-01
      • 1970-01-01
      • 2012-06-19
      相关资源
      最近更新 更多