У меня есть элемент управления выпадающего списка (ddl) в gridview.
Эти значения есть в элементе управления dll "A" и "B" и "C".
Мне нужно чтобы избежать обратной передачи страницы при изменении выбранного значения в элементе управления выпадающего списка (ddl).
И это работает.
Но этот код не работает, так как больше невозможно редактировать вид сетки линия и CommandName="Edit"
в виде сетки перестали работать.
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="gvProducts"
EventName="SelectedIndexChanged" />
</Triggers>
<ContentTemplate>
<asp:GridView ID="gvProducts" AutoGenerateColumns="False"
EmptyDataText="no data" EnableViewState="true"
runat="server"
DataKeyNames="ID"
HorizontalAlign="Center">
<AlternatingRowStyle CssClass="altrows" />
<Columns>
<asp:TemplateField HeaderText="EDIT" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:ImageButton ID="imgbtnEdit"
CommandName="Edit" runat="server"
ImageUrl="/Images/Edit.gif"
OnClientClick="return confirm('Confirm ?');" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="List" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:DropDownList runat="server"
ID="ddl"
AutoPostBack="true"
OnSelectedIndexChanged="ddl_SelectedIndexChanged">
<asp:ListItem Text="A" Value="A" />
<asp:ListItem Text="B" Value="B" />
<asp:ListItem Text="C" Value="C" />
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
РЕДАКТИРОВАТЬ
protected void gvProducts_RowEditing(object sender, GridViewEditEventArgs e)
{
string sID = gvProducts.DataKeys[e.NewEditIndex].Value.ToString();
string queryString = "sDetails.aspx?sID=" + sID.ToString().ToUpper();
string newWin = "var Mleft = (screen.width/2)-(1200/2);var Mtop = (screen.height/2)-(700/2);window.open('" + queryString + "','_blank','height=700,width=1200,status=yes,toolbar=no,scrollbars=yes,menubar=no,location=no,top=\'+Mtop+\', left=\'+Mleft+\';');";
ClientScript.RegisterStartupScript(this.GetType(), "pop", newWin, true);
}
protected void ddl_SelectedIndexChanged(object sender, EventArgs e)
{
GridViewRow gvr = (GridViewRow)(((Control)sender).NamingContainer);
string sIDdataKey = this.gvProducts.DataKeys[gvr.RowIndex].Value.ToString();
DropDownList duty = (DropDownList)gvr.FindControl("ddl");
sql = String.Format(@" UPDATE `tbl` ");
sql += String.Format(" SET `Letter`= ? ");
sql += String.Format(" WHERE ID= ?; ");
using (OdbcConnection cn =
new OdbcConnection(ConfigurationManager.ConnectionStrings["cn"].ConnectionString))
{
using (OdbcCommand command =
new OdbcCommand(sql, cn))
{
try
{
command.Connection.Open();
command.Parameters.AddWithValue("param1", duty.SelectedItem.Value.ToString());
command.Parameters.AddWithValue("param2", sIDdataKey.ToString());
command.ExecuteNonQuery();
BindData();
}
catch (Exception ex)
{
throw ex;
}
finally
{
command.Connection.Close();
}
}
}
}