0
私はグリッドビューを使用して、それが私のGridViewの実行時にgridview行の色を変更する方法は?
<asp:GridView ID="grdUser" runat="server" AllowPaging="True" AllowSorting="True" CaptionAlign="Left" OnPageIndexChanging="grdUser_PageIndexChanging" OnSorting="grdUser_Sorting" PageSize="5" CssClass="table table-hover table-striped table-responsive" DataKeyNames="Email">
<AlternatingRowStyle BackColor="#CCCCFF" />
<HeaderStyle BackColor="#009933" Font-Bold="True" Font-Size="Medium" HorizontalAlign="Center" VerticalAlign="Middle" />
<PagerSettings FirstPageText="First" Mode="NumericFirstLast" LastPageText="Last" PageButtonCount="4" NextPageText="" />
<PagerStyle BackColor="#CC66FF" HorizontalAlign="Right" VerticalAlign="Middle" ForeColor="Black" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:DropDownList ID="ddlAct" runat="server" OnSelectedIndexChanged="ddlAct_SelectedIndexChanged" AutoPostBack="true">
<asp:ListItem Value="Action" Text="imtiaz" >Action</asp:ListItem>
<asp:ListItem Value="Activate" Text="imtiaz">Activate</asp:ListItem>
<asp:ListItem Value="Block" Text="imtiaz">Block</asp:ListItem>
<asp:ListItem Value="Delete" Text="imtiaz">Delete</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
は、今私が選択した行の色をアクティブにクリックし
私を変更しなければならない条件があるドロップダウンリストに
を使用してイム内側にしていますコードは
protected void ddlAct_SelectedIndexChanged(object sender, EventArgs e)
{
using (SqlConnection con = new SqlConnection(CS))
{
DropDownList ddlAct = (DropDownList)sender;
GridViewRow row = (GridViewRow)ddlAct.Parent.Parent;
int idx = row.RowIndex;
string Email = grdUser.DataKeys[idx]["Email"].ToString();
//string Email = ((Label)row.Cells[0].FindControl("Email")).Text;
DropDownList ddl = (DropDownList)row.Cells[0].FindControl("ddlAct");
var ddlvalue = "";
if (ddl.Text.ToString() == "Activate")
{
ddlvalue = "Approved";
}
else if (ddl.Text.ToString() == "Block")
{
ddlvalue = "Blocked";
}
else
{
ddlvalue = ddl.Text.ToString();
}
string query = "Update Users set Status ='" + ddlvalue + "' where E_Mail='" + Email + "'";
SqlCommand cmd = new SqlCommand(query, con);
con.Open();
cmd.ExecuteNonQuery();
GetDataTable();
lblMsg.Visible = true;
lblMsg.ForeColor = Color.Red;
lblMsg.Text = "Status is : Account is " + ddl.Text.ToString();
}
}
です。選択したインデックス内の色のみを変更する必要があります。
マイナーが向上しました。 'row.Cells [0] .FindControl(" ddlAct ")'の代わりに 'ddlAct.Parent.Parent'と' row.FindControl( "ddlAct") 'の代わりに' ddlAct.NamingContainer'を使用してください。 –
問題によると、それは明確ではありません。 'row.BackColor = whatevercolor' –
' grdUser.SelectedRow.BackColor = System.Drawing.Color.Aqua; 'を試しましたか? –