Я создаю настраиваемый GridView с шаблонами и все такое.Я предусмотрел поля <ItemTemplate>
и <EditItemtemplate>
, содержащие элементы управления TextBoxes, DropDownList и RadioButtonList.Теперь я хочу использовать методы (функции) для представления данных (например, в таблице БД у меня есть пол как True (forMale) и False (для Female). Теперь я хочу, чтобы элемент управления Label в GridView вызывал метод, передавал весь GridViewЕсли указать строку, то метод должен вернуть строку «Male», если пол == True в дБ, и эта строка должна быть текстом самой метки, вызвавшей метод) ....
Кроме того, когдая РЕДАКТИРУЮ любую строку, я поместил, скажем, RadioButtonList для пола, но по умолчанию она не выбрана, и это приводит к ошибкам, если пользователь забывает щелкнуть переключатель.Я хочу, чтобы он проверил предыдущие значения для Пола и оставил одну из радио-кнопок выбранной в зависимости от предыдущих значений.Кроме того, когда я нажимаю кнопку «Изменить», я не могу использовать метод FindControl в методе GridView1_rowupdating, чтобы найти элементы управления <EditItemTemplate>
.Как я могу их найти?
Кроме того, я добавил две кнопки в GridView.Я хочу, чтобы эти две кнопки были включены только для тех строк, в которых Approval_stage! = Ноль.
Часть кода здесь:
MyFile.aspx: -
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" AllowSorting="True" PageSize="3" DataKeyNames="request_no" onrowediting="GridView1_RowEditing" onrowupdating="GridView1_RowUpdating" >
<Columns>
<asp:ButtonField DataTextField="request_no" HeaderText="request_no" CommandName="request_no" />
<asp:TemplateField HeaderText="date">
<EditItemTemplate>
<asp:Calendar ID="Calendar1" runat="server" ></asp:Calendar>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label5" runat="server" Text='<%# Bind("date") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="approval_stage">
<EditItemTemplate>
<asp:DropDownList ID="DropDownListApproval" runat="server">
<asp:ListItem Value ="0" >0</asp:ListItem>
<asp:ListItem Value ="1" >1</asp:ListItem>
<asp:ListItem Value ="2" >2</asp:ListItem>
<asp:ListItem Value ="3" >3</asp:ListItem>
<asp:ListItem Value ="4" >4</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# DisplayApproval(Eval("approval_stage")) %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="name" HeaderText="name" />
<asp:TemplateField HeaderText="gender">
<EditItemTemplate>
<asp:RadioButtonList ID="RadioButtonListGender" runat="server">
<asp:ListItem Value="False">Male</asp:ListItem>
<asp:ListItemValue="True">Female</asp:Li…
</asp:RadioButtonList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# DisplayGender(Eval("gender")) %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:ButtonField ButtonType="Button" CommandName="approve" Text="approve" />
<asp:ButtonField ButtonType="Button" CommandName="reject" Text="reject" />
<asp:CommandField ButtonType="Button" HeaderText="Edit" ShowEditButton="True" ShowHeader="True" />
</Columns>
</asp:GridView>
protected string DisplayGender(object gender)
{
string str = gender.ToString();
if (str == "False")
str = "Male";
else if (str == "True")
str = "Female";
return str;
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
//Some Code here
}