У меня есть gridview, который получает данные из базы данных.
Вот код .NET. Там много столбцов, и вот шаблон: выбор - это тот, о котором я говорю.Gridview должен показывать текст вместо значения из базы данных
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" AllowPaging="True" CellPadding="4" DataKeyNames="EmpID" ForeColor="#333333" GridLines="None" style="margin-right: 81px" Width="1174px" >
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<Columns>
<asp:TemplateField HeaderText="Choice" SortExpression="Choice">
<EditItemTemplate>
<asp:DropDownList ID="DropDownChoice" Text='<%# Bind("Choice") %>' runat="server" Width="60px">
<asp:ListItem Text="No" Value="0"></asp:ListItem>
<asp:ListItem Text="Yes" Value="1"></asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblChoice" runat="server" Text='<%# Bind("Choice") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
Здесь, на EditItemTemplate, пользователь может редактировать указанные данные в базе данных. Где я могу использовать выпадающий список и показать текст как нет или да, но это значение, которое будет сохранено в базе данных по-прежнему 0 и 1.
<EditItemTemplate>
<asp:DropDownList ID="DropDownChoice" Text='<%# Bind("Choice") %>' runat="server" Width="60px">
<asp:ListItem Text="No" Value="0"></asp:ListItem>
<asp:ListItem Text="Yes" Value="1"></asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
У меня возникли проблемы показывать текст Нет и Да на Gridview, как только он запустится. Как вы можете видеть здесь код ItemTemplate:
<ItemTemplate>
<asp:Label ID="lblChoice" runat="server" Text='<%# Bind("Choice") %>'></asp:Label>
</ItemTemplate>
Please suggest a way/method to show No/Yes on the ItemTemplate/Gridview section once executed. Thanks (let me know if you might need the C# code to bind data on the gridview)
Примечание: Я попытался событие RowDataBound, что был дан ответ в этом question. вот код:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
System.Data.DataRow dr = ((System.Data.DataRowView)e.Row.DataItem).Row;
if (dr["Choice"].ToString() == "0")
{
((Label)e.Row.FindControl("lblChoice")).Text = "No";
}
else if (dr["Choice"].ToString() == "1")
{
((Label)e.Row.FindControl("lblChoice")).Text = "Yes";
}
}
}
Но это не работает. Я что-то упускаю? Должен ли я включать что-то в тег <ItemTemplate>
?
Возможный дубликат [GridView отображения текста вместо значений] (http://stackoverflow.com/questions/6702062/gridview-display-the-text-instead-of-values) – iceDragon
@iceDragon У меня есть на самом деле попробовал событие RowDataBound из этой статьи, но я испугался, что он не указал на ответ, как назвать его .Net? ты знаешь как? спасибо (я также отредактирую этот вопрос и включу это) – wolfQueen
Вы добавляете событие в инструмент GridView, подобный этому asp: GridView> –
iceDragon