grdiview header和rowdatabound列中的下拉列表更改

时间:2016-04-13 09:07:25

标签: asp.net vb.net

我有一个包含数据绑定列的gridview。两列包含需要在rowdatabound中调整的信息,例如,如果列中的单元格包含2,则将其更改为显示“代码”。 我以前做过这个,但是,现在我有一个下拉列表添加到gridview标题,下拉列表项将是'all','uncode','code',现在我已经放了标题中的下拉列表,当grdiview填充它时不再将值'2'更改为'code',它将其保持为'2'。任何人都可以阐明如何让它改回'代码'

这是gridview项目标题/ databind

的代码
<asp:TemplateField SortExpression ="true">
                <HeaderTemplate>
                    Coding Stage                     
                    <asp:DropDownList ID ="ddlCoded" runat="server" OnSelectedIndexChanged="CodedChanged" AutoPostBack="true" AppendDataBoundItems ="true">
                          <asp:ListItem Text="ALL" Value="ALL"></asp:ListItem>   
                         <asp:ListItem Text="uncode" Value="uncode"></asp:ListItem>   
                         <asp:ListItem Text="code" Value="code"></asp:ListItem>                                                                                                                    
                    </asp:DropDownList>
                </HeaderTemplate>
               <ItemTemplate>
                    <%#Eval("codingStage")%>
                </ItemTemplate>
            </asp:TemplateField>

如果您需要更多信息,请与我联系,我很乐意提供 enter image description here

2 个答案:

答案 0 :(得分:3)

标记:

       <ItemTemplate>
            <asp:Label ID="lblStage" runat="server" Text='<%#ShowStage(Eval("codingStage"))%>'></asp:Label>
        </ItemTemplate>
代码背后的

protected string ShowStage(int codingStage)
{
    switch (codingStage)
    {
        case 0:
            return "All";
        case 1:
            return "Uncode";
        case 2:
            return "Code";
        default:
            return "All";

    }
}

答案 1 :(得分:0)

在同一个RowDataBound事件中,检查e.RowRowType以检测Header行。进入Header行后,找到FindControl调用的下拉列表。获得下拉列表后,将所选值保存为实例变量中的文本。然后,当RowDataBound触发数据行时,您可以访问它。