webForumDet fria alternativet

Checkbox onclick

2 svar · 343 visningar · startad av icaaq

icaaqMedlem sedan okt. 20005 273 inlägg
#1

Tjenare.
Jag vet inte vad jag gör för fel??Jag har denna Datagrid

[red]
<asp:datagrid id='gridCart' runat='server' cssclass='gridCart' headerstyle-cssclass='cartHeader' autogeneratecolumns='false' onitemdatabound='BoundCartItem'>
				<columns>
					[b]<asp:templatecolumn headertext=' ' headerstyle-width='20px'>
						<itemtemplate>
							<asp:checkbox runat=server id='delete'/>
						</itemtemplate>
					</asp:templatecolumn>[/b]
					<asp:boundcolumn datafield='ProductName' headertext='Produkt' itemstyle-cssclass='bottom' headerstyle-font-size=18px/>
					<asp:boundcolumn datafield='UnitCosts' headertext='kr/port' itemstyle-cssclass='bottom' headerstyle-font-size=18px itemstyle-horizontalalign=Right headerstyle-horizontalalign=Center itemstyle-verticalalign=Bottom />
					<asp:templatecolumn headertext='Portioner' itemstyle-cssclass='bottom' itemstyle-horizontalalign=Right headerstyle-horizontalalign=Center headerstyle-font-size=18px>
						<itemtemplate>
							<asp:dropdownlist id='ddlPort' runat='server' visible='false'/>
							<asp:textbox id='txtPort' runat='server' visible='false' />
						</itemtemplate>
					</asp:templatecolumn>
					<asp:templatecolumn headertext='kostnad' itemstyle-cssclass='bottom' headerstyle-font-size=18px itemstyle-horizontalalign=Right headerstyle-horizontalalign=Center itemstyle-verticalalign=Bottom>
						<itemtemplate>
							<asp:label runat='server' id='TotalCosts' />
						</itemtemplate>
					</asp:templatecolumn>
					<asp:boundcolumn datafield='ProductPortions' visible='false' />
					<asp:boundcolumn datafield='Quantity' visible='false' />
					<asp:boundcolumn datafield='CartId' visible='false' />
				</columns>				
				</asp:datagrid>
[/red]

Det är den feta biten som blir knas.
BoundCartItem ser delvis utså här

[red]
public void BoundCartItem(object sender, DataGridItemEventArgs e)
		{
			switch(e.Item.ItemType)
			{
				case ListItemType.Item:
				case ListItemType.AlternatingItem:

					Control _chkDelete = e.Item.FindControl("delete");
					if(_chkDelete != null)
					{
						CheckBox chkDelete = (CheckBox)_chkDelete;
						chkDelete.Attributes.Add("onclick", "javascript:if(!confirm('Vill du plocka ur "+ e.Item.Cells[1].Text +" ur din varukorg?')){return false;}");
					}
...
...
...
[/red]

Nu till problemet koden som ASP.NET producerar blir denna:

[red]
<td>
							<span onclick="javascript:if(!confirm('Vill du plocka ur Festbricka ur din varukorg?')){return false;}"><input id="gridCart__ctl2_delete" type="checkbox" name="gridCart:_ctl2:delete" /></span>
						</td>
[/red]

Alltså den slänger in en <span>. Varför och hur kan jag göra för att den ska lägga till onclick i input-taggen.

Jag vill tillägga att sidan fungerar som den ska och att den reagerar "rätt" på oncklick men det är väll inte korrekt HTML att göra på detta viset?

Mv icaaq

VimpMedlem sedan juli 20022 537 inlägg
#2

Ska det inte vara:

delete.Attributes.Add("onclick", "java script:if(!confirm('Vill du plocka ur "+ e.Item.Cells[1].Text +" ur din varukorg?')){return false;}");

Alltså delete istället för chkDelete då din checkbox heter delete..?

DinoMedlem sedan sep. 20011 914 inlägg
#3

Nä, hans kod är riktig. Samma problem uppstår när man gör en radiobuttonlist(har jag för mig), då denna läggs i en tabell. Och om man skall lägga till ett clientattribut så hamnar det på tabellen istället. Pillade med det för ett tag sen, kommer inte ihåg om det löste sig. Är antagligen en liten bug iaf.

137 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)