【问题标题】:Changing dropdownlist selected index in Gridview, conected (to getting value from) second DropDownlist更改 Gridview 中的下拉列表选定索引,连接(以获取值)第二个 DropDownlist
【发布时间】:2018-02-22 23:18:48
【问题描述】:

我的页面要执行此操作:

我想将外部下拉列表连接到 gridview 下拉列表内部。从外部下拉列表中选择项目时,必须自动更改下拉列表项内部。我已经尝试了很多改变。你能给我帮助吗。谢谢。

我的 ASPX 页面。(不要回答连接此代码)

<asp:GridView ID="GridView4" runat="server" AutoGenerateColumns="False"   
CellPadding="4" DataKeyNames="Kimlik" GridLines="Horizontal"   
onrowdatabound="GridView4_RowDataBound" ForeColor="#333333" Visible="False">  
<AlternatingRowStyle BackColor="White" />  
<Columns>  
    <asp:TemplateField HeaderText="Öd.Nu.">  
        <EditItemTemplate>  
            <asp:TextBox ID="TextBox1x" runat="server" Text='<%# Bind("Kimlik") %>'></asp:TextBox>  
        </EditItemTemplate>  
        <ItemTemplate>  
            <asp:Label ID="Label1x" runat="server" Text='<%# Bind("Kimlik") %>'></asp:Label>  
        </ItemTemplate>  
    </asp:TemplateField>

    <asp:TemplateField HeaderText="Öğrenci Adı Soyadı">  
        <EditItemTemplate>  
            <asp:TextBox ID="TextBox2x" runat="server" Text='<%# Bind("OgrenciAdiSoyadi") %>'></asp:TextBox>  
        </EditItemTemplate>  
        <ItemTemplate>  
            <asp:Label ID="Label2x" runat="server" Text='<%# Bind("OgrenciAdiSoyadi") %>'></asp:Label>  
        </ItemTemplate>  
    </asp:TemplateField>  

    <asp:TemplateField HeaderText="Odev Sonucu">  
        <EditItemTemplate>  
            <asp:TextBox ID="TextBox3x" runat="server"></asp:TextBox>  
        </EditItemTemplate>  
        <ItemTemplate>  
            <asp:DropDownList ID="DropDownList1x" runat="server">  
            </asp:DropDownList>  
        </ItemTemplate>  
    </asp:TemplateField> 

    <asp:TemplateField HeaderText="Ödev Sonuç Açıklaması">  
        <EditItemTemplate>  
            <asp:TextBox ID="TextBox4x" runat="server" Text='<%# Bind("SonucAciklama") %>'></asp:TextBox>  
        </EditItemTemplate>  
        <ItemTemplate>  
            <asp:Label ID="Label4x" runat="server" Text='<%# Bind("SonucAciklama") %>'></asp:Label>  
        </ItemTemplate>  
    </asp:TemplateField>  
</Columns>  

<EditRowStyle BackColor="#7C6F57" />

<FooterStyle BackColor="#1C5E55" ForeColor="White" Font-Bold="True" />  
<HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />  
<PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />  
<RowStyle BackColor="#E3EAEB" />  
<SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />  
<SortedAscendingCellStyle BackColor="#F8FAFA" />  
<SortedAscendingHeaderStyle BackColor="#246B61" />  
<SortedDescendingCellStyle BackColor="#D4DFE1" />  
<SortedDescendingHeaderStyle BackColor="#15524A" />  
</asp:GridView>

【问题讨论】:

    标签: c# asp.net gridview drop-down-menu


    【解决方案1】:

    在外部下拉列表的选定索引更改事件上添加以下代码

    protected void OurterDropDown_SelectedIndexChanged(object sender, EventArgs e)
    {
        foreach (GridViewRow row in GridView.Rows)
                {
                    DropDownList innerDropdown = (DropDownList)row.FindControl("innedDropedDOwnID");
    
                     innerDropdown .ClearSelection(); //making sure the previous selection has been cleared
                     innerDropdown .Items.FindByValue(OurterDropDown.SelectedValue).Selected = true;               
    
                }
    }
    

    【讨论】:

    • 当我尝试它没有工作。 (我忘记为外部下拉列表设置 AutoPostBack true)当我纠正它时,我的问题解决了。非常感谢,谢谢谢谢。我为此付出了 4-5 小时。也感谢stackoverflow。 (这是第一次 stackoverflow 体验)
    【解决方案2】:

    确保您在 DropDownList 之外设置了 AutoPostBack="true",然后在 RowDataBound 事件中尝试此代码:

    protected void GridView4_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        // check if your row is not a Header/Footer row
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            // get Dropdownlist from gridview
            DropDownList DropDownList1x = e.Row.FindControl("DropDownList1x") as DropDownList;
    
            // ddlouter is your outside DropDownList
            DropDownList1x.Items.FindByValue(ddlOuter.SelectedValue).Selected = true; 
        }
    }
    

    【讨论】:

    • 它给了我什么。我无法理解。 (在我发送这个问题之前,我从一个表格字段中填写了两个 DropDownList) 1-只是我想像 outher 一样填写所有的 innerDropDownList。 2-在用户更改一些内部 DropDownLists 之后,我将更新表。
    • 感谢您的回答。
    • 哪件事你不懂
    猜你喜欢
    • 1970-01-01
    • 2015-08-15
    • 2017-03-08
    • 1970-01-01
    • 2022-08-15
    • 2020-01-07
    • 1970-01-01
    • 1970-01-01
    • 2021-09-07
    相关资源
    最近更新 更多