GridVIew 绑定DropDownList编辑

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="False">
<ContentTemplate>
<asp:GridView ID="gdv" runat="server" AutoGenerateColumns="False" GridLines="None" DataKeyNames="Status,UserId,AutoHomeRecommend"
CssClass="mGrid" PagerStyle-CssClass="pgr" AlternatingRowStyle-CssClass="alt" Style="margin-top: 5px; word-break: break-all;"
OnRowCommand="gdv_RowCommand" OnRowDataBound="gdv_RowDataBound" OnRowEditing="gdv_RowEditing">
<AlternatingRowStyle CssClass="alt" />
<Columns>

 

<asp:TemplateField HeaderText="是否离职">
<ItemTemplate>
<asp:DropDownList ID="ddlInService" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlInService_SelectedIndexChanged" >
<asp:ListItem>在职</asp:ListItem>
<asp:ListItem>离职</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
<ItemStyle Width="4%" HorizontalAlign="Center"/>
</asp:TemplateField>

</Columns>
<PagerStyle CssClass="pgr" />
<RowStyle Height="20px"></RowStyle>
<EmptyDataTemplate>
没有数据
</EmptyDataTemplate>
</asp:GridView>

 

protected void gdv_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string status = gdv.DataKeys[e.Row.RowIndex].Values["Status"].ToString();
int UserId = gdv.DataKeys[e.Row.RowIndex].Values["UserId"].TryType<int>();
(e.Row.FindControl("ddlInService") as DropDownList).SelectedValue = DataBinder.Eval(e.Row.DataItem, "InServiceText").ToString();
}

}

 

protected void ddlInService_SelectedIndexChanged(object sender, EventArgs e)
{
int rowIndex = ((sender as DropDownList).Parent.Parent as GridViewRow).RowIndex;
int userId = Convert.ToInt32(gdv.DataKeys[rowIndex].Values["UserId"]);

int serviceValue = ((DropDownList)sender).SelectedValue == "在职" ? 1 : 0;
ArticleAuthorBLL.UpdateAuthorInService(userId, serviceValue);
}

posted @ 2020-09-23 16:19  Focus and Learn  阅读(138)  评论(0编辑  收藏  举报