Apparently fearing for his safety, security guards hustled the singer, Ammar Hassan, off the stage at the city's al-Najar University after what one witness said was only 20 minutes of actual singing. The concert had been delayed by 45 minutes by chanting, tyre-burning protesters.
Hassan shot to popularity throughout the Arab world last year when he came second in the Superstar 2 competition - the equivalent of Pop Idol, broadcast on the Lebanese TV channel, al-Mustaqbal.
Ala Badarnes, a cameraman who was at the concert on Tuesday night, said that armed militants from Hamas and the Fatah-linked al-Aqsa Martyrs Brigades had visited Hassan's hotel near the university campus and warned him he should sing nationalist songs.
Hassan sought to appease his critics by opening the show with a song about "Holy Jerusalem". But although other songs had obliquely political references he sang at least one popular love song.
Hassan has recently had two successful concerts in Ramallah and one in Bethlehem but in Qalqilya, where the council has been under the control of Hamas since the last elections, the municipality refused to allow the concert to proceed.
Qassem Ewais, 21, one of more than 1,500 concert-goers who paid 30 shekels (£3.70) for tickets told Associated Press: "I am depressed. I came to dance and sing and suddenly gunmen surrounded the university." Mr Ewais, who made the arduous journey from Qalqilya round Israeli army roadblocks, said of the militants: "These people are criminals. They are liars."
As around 20 Hamas members held posters reading "Don't dance on our blood," one masked gunman, who refused to be named, said: "We lost a lot of martyrs and lost a lot of friends, and this is not appropriate for Nablus."
* A high-level Israeli delegation is to leave for Washington tonight to seek multi-million-dollar funding for defence and development needs within Israel after it pulls out from Gaza. Some of the funds Israel wants are earmarked for development in the Negev and Galilee, where some of the 8,500 settlers are expected to go.Reuse content