I have a GridView with id value. I want to show another value instead of Id.
I use this code to do that but I faced an error.
Specified cast is not valid
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" AutoGenerateEditButton="True" BackColor="White" BorderColor="#CCCCCC"
BorderStyle="None" BorderWidth="1px" CellPadding="3" DataSourceID="SqlDataSrcAddMark" OnRowUpdating="GridView1_RowUpdating" HorizontalAlign="Center" Font-Names="Tahoma" Width="719px">
<Columns>
<asp:TemplateField HeaderText="وضعیت حضور و غیاب" SortExpression="ExamAttendanceTypeId" HeaderStyle-CssClass="Header-center">
<EditItemTemplate>
<asp:DropDownList ID="DropDownList1" runat="server">
<asp:ListItem Value="1">حاضر</asp:ListItem>
<asp:ListItem Value="2">غیبت غیرمجاز</asp:ListItem>
<asp:ListItem Value="3">غیبت مجاز</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# ShowAttendanceStatus(Eval("ExamAttendanceTypeId")) %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="LastName" HeaderText="نام خانوادگی" SortExpression="LastName" HeaderStyle-CssClass="Header-center" InsertVisible="false" />
<asp:BoundField DataField="FirstName" HeaderText="نام" SortExpression="FirstName" HeaderStyle-CssClass="Header-center" InsertVisible="false" />
<asp:BoundField DataField="StudentId" HeaderText="--" SortExpression="StudentId" HeaderStyle-CssClass="Header-center" InsertVisible="false" />
</Columns>
</asp:GridView>
protected string ShowAttendanceStatus(object i)
{
if ((byte)i == 1)
{
return "Present";
}
else if ((byte)i == 2)
{
return "UnAcceptable Absent";
}
else
{
return " Acceptable Absent ";
}
}
How can I fix this problem?