webForumDet fria alternativet

Nå GridView från nestlad DataList?

.NET

3 svar · 595 visningar · startad av k0ffe

Medlem sedan maj 2003352 inlägg
Frågan#1

Jag har problem, i en nestlad DataList vill jag kunna nå raden för den GridView som min DataList finns i.

För varje control i min DataList vill jag alltså kunna skicka med radens aktuella ID från GridView.

Någon som förstår och vet hur man kan lyckas med detta?

<asp:GridView id="gvCategories" runat="server" 
            OnRowCommand="gvCategories_RowCommand" 
            onrowdatabound="gvCategories_RowDataBound"
            CellPadding="7" 
            GridLines="None" 
            BorderStyle="None" 
            DataKeyNames="ID" 
            AutoGenerateColumns="False" 
            DataSourceID="catSqlDataSource" 
            AllowSorting="True"
            AllowPaging="True"
            PageSize="10"
            >
                <rowstyle font-size="8pt" verticalalign="top" />
                <editrowstyle backcolor="#F9F1BA" borderwidth="2px" bordercolor="#000000" />
                <Columns>
                               
                    <asp:ImageField DataImageUrlFormatString="Upload/_thumbs/{0}" readonly="true" DataImageUrlField="fileName"></asp:ImageField>
                                       
                    <asp:templatefield HeaderText="Album" SortExpression="title">
                        <itemtemplate>
                        <asp:Panel id="panelFolders" style="background:#ccc;padding:10px;" runat="server">
                        
                                 
                                [B]<asp:DataList id="dlFolders" runat="server" DataSourceID="foldersSqlDataSource" RepeatDirection="Vertical" DataKeyField="id" OnDeleteCommand="dlFolders_DeleteCommand" OnItemDataBound="dlFolders_DataBound">
                                    <ItemTemplate>
                                        <asp:Label id="lbltest" runat="server" />
                                        <asp:button commandname="select" text='<%#Eval("foldername").ToString()%>' runat="server"/>
                                    </ItemTemplate>
                                </asp:DataList> [/B] 
                               <asp:Label id="lblFolderName" runat="server"></asp:Label>
                                <br />
                                  
                            </asp:Panel>
                            
                            <cc1:HoverMenuExtender ID="HoverMenuExtender1" runat="Server" TargetControlID="linkTitle" PopupControlID="panelFolders" PopupPosition="left" OffsetX="0" OffsetY="0" PopDelay="50" />
                               
                            <asp:hyperlink runat="server" id="linkTitle" navigateUrl='<%# "pictures.aspx?catID=" & Eval ( "ID" ) %>'><%# Eval ( "title" ) %></asp:hyperlink>
                        </itemtemplate>
                        <edititemtemplate>
                            <asp:textbox id="txtTitle" class="txtBox" runat="server" width="145px" text='<%# Bind ( "title" ) %>' />
                        </edititemtemplate>  
                     </asp:templatefield>
                        
                     <asp:templatefield HeaderText="Beskrivning" SortExpression="description">
                            <itemstyle width="150px" wrap />
                            <itemtemplate>
                               <asp:label runat="server" id="lblDescription" text='<%# Eval ( "description" ) %>' />
                            </itemtemplate>
                            <edititemtemplate>
                               <asp:textbox textmode="multiline" id="txtDescription" class="txtBoxLarge" runat="server" rows="3" width="160px" text='<%# Bind ( "description" ) %>' />
                            </edititemtemplate>
                     </asp:templatefield>
                        
                     <asp:templatefield HeaderText="Delning" SortExpression="sharing">
                        <itemtemplate>
                            <asp:label runat="server" id="lblSharing" text='<%# Eval ( "sharing" ) %>' />
                        </itemtemplate>
                        <edititemtemplate>
                            <asp:CheckBox id="chkSharing" text='<%# Bind ( "sharing" ) %>' runat="server" />
                        </edititemtemplate>
                     </asp:templatefield>
                       
                     <asp:templatefield HeaderText="Skapare" SortExpression="userName">
                        <itemtemplate>
                            <asp:label runat="server" id="lblUserName" text='<%# Eval ( "userName" ) %>' />
                        </itemtemplate>
                     </asp:templatefield>
                     
                     <asp:BoundField ReadOnly="True" DataField="nrOfPictures" SortExpression="nrOfPictures" HeaderText="Antal bilder"></asp:BoundField>
                     <asp:CommandField buttontype="image" EditImageUrl="~\Img\ico_edit.gif" UpdateImageUrl="~\Img\btn_save.gif" CancelImageUrl="~\Img\btn_cancel.gif" ShowEditButton="True" CancelText="Avbryt" EditText="Redigera" UpdateText="Spara" />
                       <asp:templatefield>
                        <itemtemplate>
                            <asp:ImageButton ID="btnDelete" imageurl="Img/ico_del.gif" Runat="server" CommandName="delete"  Text="Radera" OnClientClick="return confirm('Vill du verkligen radera albumet?');"/>
                        </itemtemplate>
                        <edititemtemplate>
                        
                        </edititemtemplate>
                     </asp:templatefield>
                </Columns>
                    
                <HeaderStyle BackColor="#F2F2F2"></HeaderStyle>
                <AlternatingRowStyle BackColor="#F2F2F2"></AlternatingRowStyle>
            </asp:GridView>
Medlem sedan maj 2003352 inlägg
#2

Kan man på något sätt skriva:

<%#Parent.Findcontrol("gvCategories").osv...%>

?

Medlem sedan dec. 19996 721 inlägg
Medlem sedan maj 2003352 inlägg
#4

Tack för länken.

Jag får det dock inte att fungera, har gjort precis som i exemplet, men får felmeddelande:

 'RepeaterItem' is a type in 'WebControls' and cannot be used as an expression

Såhär:

<asp:GridView id="gvCategories" runat="server" 
            OnRowCommand="gvCategories_RowCommand" 
            onrowdatabound="gvCategories_RowDataBound"
            CellPadding="7" 
            GridLines="None" 
            BorderStyle="None" 
            DataKeyNames="ID" 
            AutoGenerateColumns="False" 
            DataSourceID="catSqlDataSource" 
            AllowSorting="True"
            AllowPaging="True"
            PageSize="10"
            >
                <rowstyle font-size="8pt" verticalalign="top" />
                <editrowstyle backcolor="#F9F1BA" borderwidth="2px" bordercolor="#000000" />
                <Columns>
                               
                    <asp:ImageField DataImageUrlFormatString="Upload/_thumbs/{0}" readonly="true" DataImageUrlField="fileName"></asp:ImageField>
                                       
                    <asp:templatefield HeaderText="Album" SortExpression="title">
                        <itemtemplate>
                        
                        <asp:Panel id="panelFolders" style="background:#ccc;padding:10px;" runat="server">
                                  catID = <%#Eval("ID").ToString()%>
                   
                                [B]<asp:DataList id="dlFolders" runat="server" DataSourceID="foldersSqlDataSource" RepeatDirection="Vertical" DataKeyField="id" OnDeleteCommand="dlFolders_DeleteCommand">
                                    <ItemTemplate>
                                    test
                                    <%#((System.Web.UI.WebControls.RepeaterItem)Container.Parent.Parent).DataItem%>
                                      <%#DataBinder.Eval(Container.DataItem, "folderName")%>

                                       
                                        <asp:button commandname="select" text='<%#DataBinder.Eval(Container.DataItem, "folderName")%>' runat="server"/>
                                        
                                    </ItemTemplate>
                                </asp:DataList> [/B] 
                               <asp:Label id="lblFolderName" runat="server"></asp:Label>
                                <br />
                                  
                            </asp:Panel>
                            
                            <cc1:HoverMenuExtender ID="HoverMenuExtender1" runat="Server" TargetControlID="linkTitle" PopupControlID="panelFolders" PopupPosition="left" OffsetX="0" OffsetY="0" PopDelay="50" />
                               
                            <asp:hyperlink runat="server" id="linkTitle" navigateUrl='<%# "pictures.aspx?catID=" & Eval ( "ID" ) %>'><%# Eval ( "title" ) %></asp:hyperlink>
                        </itemtemplate>
                     </asp:templatefield>

            
                </Columns>
            </asp:GridView>
261 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)