webForumDet fria alternativet

Checkbox i datlist

8 svar · 296 visningar · startad av Nson

NsonMedlem sedan juni 2001145 inlägg
#1

Har stött på ett problem, har tidigare gjort kod för att hämta checkbox och ett id från en datagrid, nu skulle jag hämta från en datalist och tyckte det är säkert jätteenkelt och ändrade bara om lite... Men icke sa nicke. Den hämtar ingen data från checkboxarna (när DoShare_Click anropas) ...

Någon som kan ta en titt och berätta för mig vad jag gjort galet ?

Datalist

<asp:DataList id="albumlist" runat="server" RepeatColumns="3" width="100%">
<ItemStyle BackColor="Gainsboro" Width="150" Height="150" HorizontalAlign="Center" VerticalAlign="Middle"></ItemStyle>
<itemtemplate>
<img border="0" src="d:\fserver\briefcase_idx_<%# DataBinder.Eval(Container.DataItem, "fserver") %>.jpg"><br>
<%# DataBinder.Eval(Container.DataItem, "briefcasetitle") %>
<br>
<asp:Checkbox Enabled="True" ID="ismarked" Runat="server" />
<asp:Label ID="briefcaseid" Visible="false" Text='<%# DataBinder.Eval(Container.DataItem, "briefcaseid") %>' Runat=server />
</itemtemplate>
</asp:DataList>
Private Sub DoShare_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DoShare.Click
        Dim anitem As DataListItem
        Dim ismarked As System.Web.UI.WebControls.CheckBox
        Dim strid As String

        For Each anitem In albumlist.Items
            ismarked = anitem.FindControl("ismarked")
            If ismarked.Checked Then
                strid = strid + ",'" + CType(anitem.FindControl("briefcaseid"), Label).Text + "'"
            End If
        Next

        Response.Write("--" & strid)
m_soderlundMedlem sedan sep. 20026 425 inlägg
#2

Får du något felmeddelande, eller hämtas helt sonika inga data från checkboxarna, utan något felmeddelande?

NsonMedlem sedan juni 2001145 inlägg
#3

Response.write(strid) visar inget alls... (I mitt exempel visas bara -- ...

m_soderlundMedlem sedan sep. 20026 425 inlägg
#4

Det är alltså briefcaseid som inte har något värde. Om du högerklickar på din sida och kollar upp koden

<span id="briefcaseid"> ... </span>

så bör du kunna se om briefcaseid skrivs ut. Om det inte finns något värde inom span-taggarna så är briefcaseid i din datakälla tom.

NsonMedlem sedan juni 2001145 inlägg
#5

Ändrade till

<asp:Label ID="briefcaseid" Visible="true" Text='<%# DataBinder.Eval(Container.DataItem, "briefcaseid") %>' Runat=server />

I stället... Då syns det i datalisten men min kod fungerar fortfarande inte (den får inget värde)

PDahlenMedlem sedan apr. 2004778 inlägg
#6

I din For Each loop, lägg till

Response.Write( CType(anitem.FindControl("briefcaseid"), Label).Text & "<br>")

På det sättet får vi reda på om felet ligger i checkboxkollen eller i labeln.

NsonMedlem sedan juni 2001145 inlägg
#7

PDahlen, då jag gör detta så skrivs det snyggt ut...

PDahlenMedlem sedan apr. 2004778 inlägg
#8

Jag tror att jag vet vad du gör för fel.
I din Page_Load event, har du satt dit If Not IsPostBack Then runt din databindning? Annars databinder du varje gång du klickar på knappen och då tas dina markerade checkboxar bort.
Jag testade din kod och den funkar fint efter att man kollat PostBack.

NsonMedlem sedan juni 2001145 inlägg
#9

Ahha... Så otroligt korkad man kan vara... Som vanligt är du en klippa.. Det är klart att jag glömt det!

/Niklas

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