首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ItemDataBound中获取项目?

如何在ItemDataBound中获取项目?
EN

Stack Overflow用户
提问于 2020-09-15 18:36:05
回答 1查看 155关注 0票数 0

希望一切都好。

如何找到控件ItemDataBound

我有这个

代码语言:javascript
复制
<telerik:RadGrid RenderMode="Lightweight" runat="server" ID="RadGrid1" OnItemDataBound="RadGrid1_ItemDataBound" OnInsertCommand="RadGrid1_InsertCommand" OnUpdateCommand="RadGrid1_UpdateCommand"
            AutoGenerateColumns="False" GridLines="None" 
           PageSize="3">
            <PagerStyle Mode="NumericPages" AlwaysVisible="true"></PagerStyle>
            <MasterTableView AutoGenerateColumns="false" AllowAutomaticUpdates="false" Width="100%" CommandItemDisplay="Top" DataKeyNames="ID"  >
                     <CommandItemSettings ShowRefreshButton="false" />
                     <CommandItemSettings ShowAddNewRecordButton="true" />
                <Columns>
                    <telerik:GridEditCommandColumn>
                        <HeaderStyle Width="36px"></HeaderStyle>
                    </telerik:GridEditCommandColumn>
                    <telerik:GridTemplateColumn HeaderText="ImageName" UniqueName="ImageName">
                        <ItemTemplate>
                            <asp:Label runat="server" ID="lblName" Text='<%# Eval("Id") %>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <telerik:RadTextBox RenderMode="Lightweight" runat="server" Width="300px" ID="txbName" Text='<%# Eval("Url") %>'>
                            </telerik:RadTextBox>
                            <asp:RequiredFieldValidator ID="Requiredfieldvalidator1" runat="server" ControlToValidate="txbName"
                                ErrorMessage="Please, enter a name!" Display="Dynamic" SetFocusOnError="true"></asp:RequiredFieldValidator>
                        </EditItemTemplate>
                        <HeaderStyle Width="30%"></HeaderStyle>
                    </telerik:GridTemplateColumn>
                    <telerik:GridTemplateColumn DataField="Url" HeaderText="Url" UniqueName="Url">
                        <ItemTemplate>
                            <telerik:RadBinaryImage runat="server" ID="RadBinaryImage1"  ImageUrl='<%#Request.ApplicationPath + "/images/" + Eval("Url") %>'
                                AutoAdjustImageControlSize="false" Height="80px" Width="80px" ToolTip='<%#Eval("Url") %>'
                                AlternateText='<%#Eval("Url") %>'></telerik:RadBinaryImage>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <telerik:RadAsyncUpload  RenderMode="Lightweight" runat="server" ID="AsyncUpload1" 
                                AllowedFileExtensions="jpg,jpeg,png,gif" MaxFileSize="1048576">
                            </telerik:RadAsyncUpload>
                        </EditItemTemplate>
                    </telerik:GridTemplateColumn>


                    
                <telerik:GridTemplateColumn>
                    <ItemTemplate>
                        <asp:CheckBox ID="Status" Checked='<%# Convert.ToBoolean(Eval("Status")) %>' runat="server" AutoPostBack="true" />
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:CheckBox runat="server" ID="Status" AutoPostBack="true" Checked='<%# Convert.ToBoolean(Eval("Status")) %>'></asp:CheckBox>
                    </EditItemTemplate>
                </telerik:GridTemplateColumn>



                        <telerik:GridTemplateColumn HeaderText="Title" UniqueName="Title">
                    <ItemTemplate>
                        <asp:Label runat="server" ID="lbltitle" Text='<%# Eval("Title") %>'></asp:Label>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <telerik:RadTextBox RenderMode="Lightweight" runat="server" Width="300px" ID="txtTitle" Text='<%# Eval("Title") %>'>
                        </telerik:RadTextBox>
                    </EditItemTemplate>
                    <HeaderStyle Width="30%"></HeaderStyle>
                </telerik:GridTemplateColumn>
                     

                  <telerik:GridTemplateColumn  HeaderText="Album" UniqueName="Album">
                    <ItemTemplate>
                        
                        <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%data source=cr-test-db01;initial catalog=CRAWebsite;User ID=sa;Password=P@ssword; Application Name=CRA; %>" SelectCommand="SELECT * FROM [dbo].[Album]"></asp:SqlDataSource>


                        <telerik:RadDropDownList  RenderMode="Lightweight" runat="server" Width="300px" ID="ddlAlbums">
                            <Items>
                                <telerik:DropDownListItem  runat="server" Text="A" Value="A" />
                            </Items>
                        </telerik:RadDropDownList>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <telerik:RadDropDownList   RenderMode="Lightweight" runat="server" Width="300px" ID="ddlAlbums">
                            <Items>
                                <telerik:DropDownListItem  runat="server" Text="A" Value="A" />
                            </Items>
                        </telerik:RadDropDownList>
                    </EditItemTemplate>
                    <HeaderStyle Width="30%"></HeaderStyle>
                </telerik:GridTemplateColumn>



                </Columns>
                <EditFormSettings>
                    <EditColumn ButtonType="FontIconButton">
                    </EditColumn>
                </EditFormSettings>
                <PagerStyle AlwaysVisible="True"></PagerStyle>
            </MasterTableView>
        </telerik:RadGrid>
代码语言:javascript
复制
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
        {

            if (e.Item is GridCommandItem)
            {
                GridCommandItem item = (GridCommandItem)e.Item;
                var RadDropDownList = (RadDropDownList)item.FindControl("ddlAlbums");
                (RadDropDownList)item.FindControl("ddlAlbums"); show null why ???

            }


            var albums = DBLayer.DbLayer.GetAlbums();
            foreach (var item in albums.Tables[0].Rows)
            {
            }

            foreach (DataRow row in albums.Tables[0].Rows)
            {
                DropDownListItem item2 = new DropDownListItem();
                item2.Text = row["Content_Name_a"].ToString();
                item2.DropDownList.DataTextField = row["Content_Name_a"].ToString();
                item2.DropDownList.DataValueField = row["Id"].ToString();
            }


        }
EN

回答 1

Stack Overflow用户

发布于 2020-09-16 06:12:48

您需要确保它是项类型,而不是命令项

代码语言:javascript
复制
     if((e.Item.ItemType == ListItemType.Item) ||  (e.Item.ItemType == ListItemType.AlternatingItem))
     { 

       var RadDropDownList = (RadDropDownList)e.item.FindControl("ddlAlbums");

        if(RadDropDownList != null)
        {
            //do what you need here
         }
     }

https://docs.microsoft.com/en-us/dotnet/api/system.web.ui.webcontrols.datagrid.onitemdatabound?view=netframework-4.8

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63900063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档