Combobox Databind()检查

时间:2011-12-20 18:42:07

标签: c# javascript asp.net sql

我有一个组合框和一个值列表。 如果我添加一个值并保存它,它应该出现在组合框中。但它只在我刷新页面后出现。它没有正确绑定数据。

我已将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">

3 个答案:

答案 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();