我有一个组合框和一个值列表。 如果我添加一个值并保存它,它应该出现在组合框中。但它只在我刷新页面后出现。它没有正确绑定数据。
我已将DataBind()放入
if (!Page.IsPostBack)
{
DataBind() ;
}
但上述情况无济于事。 如何检查所有内容是否正确绑定。
请帮忙。 谢谢
protected void Page_Load(object sender, EventArgs e)
{
DataBind();
if (!Page.IsPostBack)
{
}
}
protected void btn_save_click(object sender, EventArgs e)
{
SqlCommand command_update = new SqlCommand("Update", connection_save1);
command_update.CommandType = System.Data.CommandType.StoredProcedure;
command_update.Parameters.Add(new SqlParameter("@ViewId", Int32.Parse(Id.Value)));
SqlParameter Returns = new SqlParameter("@ReturnCode", SqlDbType.Char);
Returns.Size = 1;
Returns.Direction = ParameterDirection.Output;
command_insert.Parameters.Add(Returns);
bSuccess = command_insert.Parameters["@ReturnCode"].Value.ToString();
if (bSuccess == "1")
{
//Response.Write("Insert successful");
dd_group.DataBind();
dd_group.SelectedValue = command_insert.Parameters["@ReturnCode"].Value.ToString().Trim();
}
}
这是html
<asp:DropDownList ID="dd_group" DataSourceID="sp" DataTextField="maintitle"
DataValueField="Id" runat="server" AutoPostBack="True"
OnSelectedIndexChanged="group_SelectedIndexChanged1" Height="24px"
Width="50%">
</asp:DropDownList>
<asp:SqlDataSource ID="sp" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="GetIds" runat="server" SelectCommandType="StoredProcedure">
答案 0 :(得分:1)
你可以使用web方法向组合框添加元素,当你添加任何项目时使用jquery甚至javascript并调用这个webmthod你重新绑定数据
答案 1 :(得分:1)
protected void Pre_Render(object sender, EventArgs e)
{
DataBind();
}
protected void btn_save_click(object sender, EventArgs e)
{
SqlCommand command_update = new SqlCommand("Update", connection_save1);
command_update.CommandType = System.Data.CommandType.StoredProcedure;
command_update.Parameters.Add(new SqlParameter("@ViewId", Int32.Parse(Id.Value)));
SqlParameter Returns = new SqlParameter("@ReturnCode", SqlDbType.Char);
Returns.Size = 1;
Returns.Direction = ParameterDirection.Output;
command_insert.Parameters.Add(Returns);
bSuccess = command_insert.Parameters["@ReturnCode"].Value.ToString();
if (bSuccess == "1")
{
//Response.Write("Insert successful");
dd_group.DataBind();
dd_group.SelectedValue = command_insert.Parameters["@ReturnCode"].Value.ToString().Trim();
}
}
答案 2 :(得分:1)
更新数据源后必须调用DataBind()
:这通常在Page_Load()
事件之后调用的某个控件事件处理程序中完成,因此只有刷新后才能看到此调用(然后它是第二次调用,这是你更新后的第一次。)
因此,只需将DataBind()
添加到执行更新的方法中,例如:
mycontrol.DataSource = newvariable;
mycontrol.DataBind();