2010-10-28 14 views
13

में विधि में सेट करने के लिए मैं अपने कोडबेंड से लिंकबटन का निर्माण कर रहा हूं, और मुझे एक विधि पर क्लिक करने की आवश्यकता है, और इसके साथ पैरामीटर भी पास करना है। मैं अब तक इस राशि:लिंकबटन की ऑनक्लिक घटना को कोडबेहिंड

LinkButton lnkdel = new LinkButton(); 
lnkdel.Text = "Delete"; 

विधि मैं दिखता करने के लिए इसे इस तरह पास करना चाहते हैं:

protected void delline(string id) 
     { 

     } 

उत्तर

31

ठीक है आप इसे पास नहीं कर सकते विधि, आपको क्लिक ईवेंट प्रतिनिधि को इसे संभालने में सक्षम विधि को असाइन करने की आवश्यकता है।

इस तरह

:

public void DynamicClick(object sender, EventArgs e) { 
    // do something 
} 

किसी भी घटना की तरह क्लिक करें घटना असाइन करें:

lnkdel.Click += new EventHandler(DynamicClick); 

आप एक तर्क पारित करने के लिए चाहते हैं, CommandArgument उपयोग करें, और आप एक अलग प्रतिनिधि की आवश्यकता होगी :

void DynamicCommand(Object sender, CommandEventArgs e) 
     { 
     Label1.Text = "You chose: " + e.CommandName + " Item " + e.CommandArgument; 
     } 

और फिर:

lnkDel.Command += new CommandEventHandler(DynamicCommand) 
lnkDel.CommandArgument = 1234; 

BTW अगर आप> = सी # 3 पर हैं, आप भी गुमनाम तरीकों में से ठंडक का उपयोग कर सकते हैं:

lnkDel.Command += (s, e) => { 
    Label1.Text = "You chose: " + e.CommandName + " Item " + e.CommandArgument; 
}; 
+0

धन्यवाद साथी, मैं दूसरी विधि का उपयोग करने के कोशिश कर रहा हूँ आप उद्देश्य के रूप में पोस्ट किया गया है पोस्ट को हटाने के लिए आईडी को पास करना है। .nCommand इंटेलिजेंस सूची में प्रकट नहीं हुआ था, और जब मैं इसे टाइप करने का प्रयास करता हूं वैसे भी यह मुझे बताता है कि लिंकबटन इसके सुरक्षा स्तर के कारण अचूक है? – Chris

+1

@ क्रिस - हाँ, लिंकबटन के साथ उस 'बग/फीचर' के बारे में भूल गए। इसे आज़माएं: 'lnkDel.Command + = new CommandEventHandler (DynamicCommand)' या बस 'lnkDel.Command + = DynamicCommand'। – RPM1984

+0

धन्यवाद दोस्त, यह संकलित करता है लेकिन यह कभी भी कमांड में नहीं लगता है - क्या मुझे कुछ याद आ रही है? मैंने सी # 3 विधि भी कोशिश की है, जो संकलित करता है लेकिन फिर कभी भी उस विधि में नहीं जाता – Chris

1

इस घटना के लिए समारोह प्रोटोटाइप है:

protected void lnkdel_OnClick(object _sender, EventArgs _args) 
{ 
    LinkButton src = (LinkButton)_sender; 
    // do something here... 
} 

के साथ निरुपित :

LinkButton lnkdel = new LinkButton(); 
lnkdel.Text = "Delete"; 
lnkdel.OnClick += new EventHandler(lnkdel_OnClick);