簡體   English   中英

Javascript函數未從代碼隱藏中調用

[英]Javascript function doesn't called from codebehind

我在帶有參數的javascript中具有函數,並且當Gridview綁定其數據時,我想多次調用此函數。 所以我把這樣的代碼

if (e.Row.RowType == DataControlRowType.DataRow)
{
    if (((DataRowView)e.Row.DataItem) != null)
 {
Page.ClientScript.RegisterStartupScript(this.GetType(),new Random().Next(100).ToString(), 
                        "likeStatus('"+argument+"')", true);
 }
}

每次更改key的值時,此函數僅被調用一次。 所以請幫助我在每次網格視圖綁定的迭代中應該如何調用函數。

提前致謝

問題是,如果需要隨機性,則需要使用相同的Random實例,並且不能每次都創建一個新實例。 您現在的操作方式可能每次都會產生相同的值。 (還請注意,隨機值與唯一值不同)
為了解決這個問題,我會做些不同的事情。

在您的課程中聲明一個StringBuilder作為字段。 在綁定網格之前創建它:

sb = new StringBuilder();
gridView.DataBind();

然后在GridViewRowDataBound事件中寫入構建器。

if (e.Row.RowType == DataControlRowType.DataRow)
{
    if (((DataRowView)e.Row.DataItem) != null)
       sb.Append("likeStatus('"+argument+"');");
}

最后在PreRender注冊腳本字符串

Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript", 
                        sb.ToString(), true);

或者,使用唯一值作為鍵,例如Guid.NewGuid().ToString()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM