我有一个包含数据绑定列的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>
答案 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触发数据行时,您可以访问它。