2010-09-30 8 views
8

मेरी लिंक बटन -Eval के साथ OnClientClick ईवेंट के साथ जावास्क्रिप्ट फ़ंक्शन को कैसे बाध्य करें?

<asp:LinkButton runat="server" ID="lbtnEdit" Text="edit" OnClientClick="javascript:msgDisp('<%# Eval(LocationId).toString() %>')" /> 

और जावास्क्रिप्ट msgDisp

<script type="text/javascript" language="javascript"> 
    function msgDisp(lid) {    
     alert(lid); 
    } 
</script> 

है- लेकिन यह पॉप में LocationId giiving नहीं है, लेकिन पूरी स्ट्रिंग <% # ......%> पॉपअप संदेश में comin है। मैं जावास्क्रिप्ट में इवल मान कैसे पास कर सकता हूं।

+0

क्या डाटाबेस नियंत्रण में लिंक बटन है? यदि नहीं, तो आपको 'lbtnEdit.DataBind()' कॉल करने की आवश्यकता है। –

उत्तर

12

आप कोड कोष्ठकों के भीतर एक स्ट्रिंग के रूप में OnClientClick की संपूर्ण सामग्री का निर्माण कर सकते हैं और यह आप की तरह उत्पादन की उम्मीद कर रहे होंगे।

<asp:LinkButton runat="server" ID="lbtnEdit" Text="edit" 
    OnClientClick='<%# "msgDisp(" + Eval("LocationId") + ");" %>' /> 

यह LocationId संभालने है एक वैध है number- अपने मूल्य रैप करने के लिए कोई उद्धरण चिह्न तो outputting msgDisp(hello); की तरह कुछ को तोड़ने के लिए जा रहा है जब यह renders देखते हैं,। मैं इस तरह से पता करने के लिए कि कैसे पता नहीं है, तो आप क्या करना है, तो यह है कि मैं ItemDataBound घटना के दौरान OnClientClick सर्वर साइड की स्थापना की सिफारिश करेंगे। यहां यह है कि यह कैसा होगा जहां माता-पिता Repeater नियंत्रण है।

protected void notesRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) 
{ 
    MyClass item = (MyClass)e.Item.DataItem; 
    LinkButton lbtnEdit = (LinkButton)e.Item.FindControl("lbtnEdit"); 
    lbtnEdit.OnClientClick = string.Format("msgDisp('{0}');", item.LocationId); 
} 
+0

यदि आप इसके आसपास उद्धरण चाहते हैं जैसे 'msgDisp (' हैलो ');' तो आप HTML इकाई का उपयोग कर सकते हैं जैसे: 'OnClientClick =' <% # "msgDisp ('" + Eval ("LocationId") + "') , " %> ' '। –

2

आप अपने बाध्यकारी अभिव्यक्ति टैग (<% # ...%>) मार्कअप में प्रदान की गई हो रही है, तो इसका मतलब आपके LinkButton एक बाध्यकारी कंटेनर में आरंभ नहीं किया है। एक बाध्यकारी कंटेनर, हो सकता है के रूप में @lincolnk, प्रदर्शन एक पुनरावर्तक या GridView आइटम, एक कैलेंडर सेल, आदि इसके अलावा, आप "जावास्क्रिप्ट:" के साथ अपने समारोह कॉल उपसर्ग की जरूरत नहीं है। OnClientClick संपत्ति के मूल्य लंगर के onclick घटना के हैंडलर के रूप में प्रदान की गई है।

2

नेट पर हर जगह देखा। हर कोई कोडबहाइंड का उपयोग करता है। मेरा समाधान देखें, जो तब भी काम करता है जब मेरे डेटावाले में ओ'नेल जैसे एक ही उद्धरण है। यदि आपका डेटा आइटम doublequotes शामिल यह काम नहीं करेगा। लेकिन उस काम के लिए काम करता है जो मुझे करने की ज़रूरत होती है जो किसी व्यक्ति के नाम पर गुजरती है। अलर्ट कॉल के अंदर बैकस्लैश नोट करें।

OnClientClick="<%#string.Format(&quot;alert(\&quot;{0}\&quot;); return false; &quot;, Eval(&quot;NAME&quot;))%>"** 
0

मैं उसके जवाब के लिए lincolnk धन्यवाद देना चाहता हूँ। मैं वर्तमान में googam.com के लिए एक नया सोशल नेटवर्क बनाने में मदद कर रहा हूं। मैं एक jquery मोडल संवाद पॉपअप में, एक datalist में, उपयोगकर्ता की प्रोफ़ाइल देखने के लिए समाधान के लिए कुछ दिनों के लिए खोज रहा है। ItemDataBound घटना में linkbutton OnClientClick को सेट करने से पॉपअप विंडो में एक एसीएक्स उपयोगकर्ता नियंत्रण खोलने के लिए उपयोगकर्ता आईडी को JQuery फ़ंक्शन में पास करने की समस्या हल हो गई है।

jQuery(document).ready(function() { 
     var mydiv = jQuery("#mydialog").dialog({ 
      autoOpen: false, 
      resizable: false, 
      modal: true, 
      width: '500', 
      height: '400' 
     }).css("font-size", "0.8em"); 
    }); 

    function ShowPopup(uid) { 
     var mydiv = jQuery("#mydialog") 
     //alert(uid) 
     // Load the content using AJAX 
     mydiv.load('Profile.aspx?id=' + uid); 
     // Open the dialog   
     mydiv.dialog('open'); 
    } 

//////////////

Protected Sub DataList1_ItemDataBound(ByVal sender As Object, ByVal e As DataListItemEventArgs) 
    If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = ListItemType.AlternatingItem Then 
     Dim imageControl = TryCast(e.Item.FindControl("Image1"), Image) 
     Dim Uid As String = imageControl.ImageUrl 

     Dim ProfileBtn As LinkButton = TryCast(e.Item.FindControl("ProfileButton"), LinkButton) 
     ProfileBtn.OnClientClick = String.Format("ShowPopup('{0}');return false;", Uid) 

    End If 
End Sub 
1

आप onclick = '<% # की तरह कर सकते हैं "msgDisp (" + Eval ("LocationId") + ");" %> '

संबंधित मुद्दे