webForumDet fria alternativet

Checkbox blir LiteralControl??

.NET

2 svar · 181 visningar · startad av kristoffer

Medlem sedan juni 20001 257 inlägg
Frågan#1

Erh, det här är märkligt. Jag har en DataGrid och i denna en <asp:TemplateColumn> och i denna en <ItemTemplate> och i denna en <asp:CheckBox>:

...
<asp:TemplateColumn HeaderText="bla bla">
  <ItemTemplate>
   <asp:CheckBox ID="CheckBoxRet" Checked='<%# DataBinder.Eval(Container.DataItem, "bitMyBoolean") %>' Runat="server"></asp:CheckBox>
 </ItemTemplate>
</asp:TemplateColumn>
...

När jag försöker köra

bool tempasdf = ((CheckBox) e.Item.Cells[2].Controls[0]).Checked;

får jag felmeddelandet

System.InvalidCastException: Specified cast is not valid.

Bara för säkerhets skull kontrollerar jag vad det är för typ av kontroll:

string assdffe = e.Item.Cells[2].Controls[0].GetType().ToString();

och jag upptäcker att det är en System.Web.UI.LiteralControl. Va!! Hur fan kan det vara en LiteralControl. Det är ju en CheckBox i .aspx-koden? Jag skriver ut texten i innehållet:

string asdfaaf = ((LiteralControl) e.Item.Cells[2].Controls[0]).Text;

och kan se att:

asdfaaf = "                                                                                                                                                                                                          "

Ja, det är sant!! Va i hela friden skall det här betyda? En massa mellanslag??

Medlem sedan juni 20011 732 inlägg
#2

Första kontrollen är ALLTID en literalcontrol... för några veckor sedan visste jag varför men det har jag glömt bort nu. :) Prova detta:

((CheckBox) e.Item.Cells[2].Controls[1])

Du kan ju även identifiera en kontroll med dess id, lite lättare. Om du har många kontroller så kan du loopa igenom och skriva ut dem så blir det lättare att identifiera allihop.

Medlem sedan juni 20001 257 inlägg
#3

Jag loopade igenom dem och jag hittade felet. Tack för det.

248 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
120 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)