Ho sviluppato l'applicazione GridView utilizzando il widget di (da questo codice)Come possiamo implementare la funzionalità Onclick nella griglia titanio elemento Mostra
https://github.com/pablorr18/TiDynamicGrid
Ho modificato il codice secondo le mie esigenze del cliente. Ora, se mi piace fare clic sul pulsante Visualizza carrello sulla voce di elenco, si avviserà il messaggio come "Sono cliccato". Ma ho provato in vari modi. Ma non riesco a trovare le soluzioni. Qualcuno può spiegarmi come stiamo scrivendo il codice per questo.
ho segue sottostante Codice nella mia domanda:
var items = [];
var showGridItemInfo = function(e){
alert("Onclick the row");
};
var delay = (OS_ANDROID) ? 1000:500;
$.tdg.init({
columns:3,
space:5,
delayTime:delay,
gridBackgroundColor:'#e1e1e1',
itemBackgroundColor:'#fff',
itemBorderColor:'transparent',
itemBorderWidth:0,
itemBorderRadius:5,
onItemClick: showGridItemInfo
});
function createSampleData(){
var sendit = Ti.Network.createHTTPClient({
onerror: function(e){
Ti.API.debug(e.error);
alert('There was an error during the connection');
},
timeout:10000,
});
sendit.open('GET', url+'android_livedev/client/test.php?action=listitems&categoryid='+subcategorylist_category_id+'&productmin=0&productmax=50');
sendit.send();
sendit.onload = function(){
var response = JSON.parse(this.responseText);
if(response[0].success == 0){
alert("No Products Found");
}
else {
items = [];
for (var x=0;x<response[0].data.length;x++){
var view = Alloy.createController('item_layout',{
image:imageurl+response[0].data[x].thumb_image,
product:response[0].data[x].product,
productprice:"$"+" "+response[0].data[x].price,
onItemClick: addcart,
}).getView();
var values = {
product: response[0].data[x].product,
image: response[0].data[x].thumb_image,
productid : response[0].data[x].productid,
};
items.push({
view: view,
data: values
});
};
$.tdg.addGridItems(items);
reateSampleData();
$.tdg.clearGrid();
$.tdg.init({
columns:nColumn,
space:nSpace,
delayTime:delay,
gridBackgroundColor:'#e1e1e1',
itemHeightDelta: 0,
itemBackgroundColor:'#fff',
itemBorderColor:'transparent',
itemBorderWidth:0,
itemBorderRadius:5,
onItemClick: showGridItemInfo
});
createSampleData();
});
$.win.open();
Il codice item_layout.xml sta cercando come:
<Alloy>
<View id="mainView">
<ImageView id="thumb"/>
<Label id="product"></Label>
<Label id="productprice"></Label>
<Button id="addcart" onClick="additemtocart"/>
</View>
</Alloy>
EDIT:
ora sto ottenendo la vista e l'ID del pulsante da quella vista specificata. Ma se sto cercando di fare clic sul pulsante significa che non è in grado di fare. puoi controllare il mio codice e dare una soluzione.
ho aggiunto il codice qui sotto:
var view = Alloy.createController('item_layout',{
image:imageurl+response[0].data[x].thumb_image,
product:response[0].data[x].product,
productprice:"$"+" "+response[0].data[x].price
}).getView();
var controller = Alloy.createController('item_layout');
var button = controller.getView('addcart');
button.addEventListener('click', function (e){
alert("click");
Ti.API.info('click');
});
Fornire un [esempio minimo, completo e verificabile] (http://stackoverflow.com/help/mcve). Il codice sopra riportato è incompleto e non verificabile. –