I'm using a repeater control and I'm trying to pass a parameter as such:
<%# SomeFunction( DataBinder.Eval(Container.DataItem, "Id") ) %>
It's basically calling:
public string SomeFunction(long id) {
return "Hello";
}
I'm not able to achieve this as I get an error:
error CS1502: The best overloaded method match ... SomeFunction(long id) ... has some invalid arguments.
Any ideas?
You need to cast the result to a long, so:
<%# SomeFunction( (long)DataBinder.Eval(Container.DataItem, "Id") ) %>
The alternative is to do something like this:
<%# SomeFunction(Container.DataItem) %>
and...
public string SomeFunction(object dataItem) {
var typedDataItem = (TYPED_DATA_ITEM_TYPE)dataItem;
// DO STUFF HERE WITH THE TYPED DATA ITEM
return "Hello";
}
This at least allows you to work with multiple values from the data item (DataRows etc).
I used this with success. The data source is a List collection.
OnClientClick='<%# "return myFunction(\""+ Container.DataItem + "\");" %>'
and the javascript function...
function myFunction(imgPath)
{
alert(imgPath);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With