2016-12-23 13 views
0

私はtelerikとjavascriptを初めて使用しています。私はリンクボタンを持っています。ボタンをクリックすると、サーバー側から2つの条件があります。それによると、私はJavaScriptを呼び出す必要があります。リンクボタンでサーバサイドからjavascriptを呼び出すtelerik

ASPXコード:

<asp:LinkButton ID="TestLinkButton" runat="server" OnClick="Test_Click" 
SkinID="SmallCommandItemTemplateLinkButton">Test</asp:LinkButton>               

サーバーサイドコード:

protected void Test_Click(object sender, EventArgs e) 
{ 
    if (a == 0) 
    { 
     Page.ClientScript.RegisterStartupScript(this.GetType(), "scriptsKey", "<script type=\"text/JavaScript\" language=\"javascript\">ShowAlert();</script>"); 
    } 
    else 
    { 
     TestLinkButton.Attributes["onclick"] = String.Format("return ShowEditForm('{0}')", test); 
    } 
} 

ここでは、TestLinkBut​​tonを見つけることができません。私がボタンクリック引数でGridItemEventArgsを使用している場合、 'testLinkBut​​ton_click'がdelegate'System.Eventhandler 'と一致するため、No Overloadとしてエラーが発生しています。

+0

背後

<telerik:RadGrid ID="RadGrid1" runat="server" OnItemDataBound="RadGrid1_ItemDataBound" > 

コードは、私はtelerikに精通していないですが、私はこれがそうでイベント委任に持っていると思います。 https://www.google.nl/amp/s/davidwalsh.name。それを読んで、解決策を見つけるかもしれません! –

+0

あなたはいくつかのアイデアを共有することができます –

+0

私はそれに恩恵をかけますので、私より多くの経験を持つ人がこれに答えることができます。私が言ったように、私はTelerikに精通していません。 –

答えて

2

LinkBut​​tonコントロールがTest_Clickイベントハンドラのsender引数から取得することができ、およびJavaScriptコードがそのOnClientClickプロパティに取り付けることができる。

LinkButton lnkButton = sender as LinkButton; 
lnkButton.OnClientClick = String.Format("return ShowEditForm('{0}')", test); 
+0

うん。できます.. –

1

私は間違っているかもしれないが、私はあなたが探していると思いますGridViewのLinkButtonにjavascript onclickを添付する方法です。あなたはLinkBut​​tonのサーバOnClickでそれをやっているようですが、それはサーバへのラウンドトリップ(PostBack)になります。

GridViewのOnItemDataBoundイベントでも同じことができます。 OnItemDataBoundをGridViewに追加する必要があります。

protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e) 
{ 
    //check if the item is a GridDataItem 
    if (e.Item is GridDataItem) 
    { 
     //if 'a' needs to come from the dataset that is bound to the gridview, you can do this 
     GridDataItem item = (GridDataItem)e.Item; 
     string a = Convert.ToInt32(item["ID"].Text); 

     //or another grid value 
     string b = item["name"].Text; 

     //find the linkbutton with findcontrol and cast it back to one 
     LinkButton linkbutton= e.Item.FindControl("TestLinkButton") as LinkButton; 

     if (a == 0) 
     { 
      //attach the OnClientClick click function 
      linkbutton.OnClientClick = string.Format("ShowDeleteForm('{0}'); return false;", test2); 
     } 
     else 
     { 
      //attach the OnClientClick click function 
      linkbutton.OnClientClick = string.Format("ShowEditForm('{0}'); return false;", test); 
     } 
    } 
} 
関連する問題