Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用AppendDataBoundItems时,我的2个GridView中的1个视图中存在重复数据_C#_Html_Asp.net - Fatal编程技术网

C# 使用AppendDataBoundItems时,我的2个GridView中的1个视图中存在重复数据

C# 使用AppendDataBoundItems时,我的2个GridView中的1个视图中存在重复数据,c#,html,asp.net,C#,Html,Asp.net,我有两个gridview,分别称为DDLTOC和DDLCase。我使用appenddatabounditems将默认值插入DDL。我的默认值是(“选择成员报告ID”) 我还在DDLTOC上添加了另一个绑定 protected void DDLTOC_SelectedIndexChanged(object sender, EventArgs e) { using (var connAdd = new SqlConnection("Data Source = localhos

我有两个gridview,分别称为DDLTOC和DDLCase。我使用appenddatabounditems将默认值插入DDL。我的默认值是(“选择成员报告ID”)

我还在DDLTOC上添加了另一个绑定

protected void DDLTOC_SelectedIndexChanged(object sender, EventArgs e)
    {
        using (var connAdd = new SqlConnection("Data Source = localhost; Initial Catalog = project; Integrated Security= SSPI"))
        {
            connAdd.Open();

            var sql = "SELECT memberreportid FROM MemberReport Where typeofcrime ='" + DDLTOC.SelectedValue + "' AND caseprogress='settled'";
            using (var cmdAdd = new SqlDataAdapter(sql, connAdd))
            {
                DataSet ds2 = new DataSet();
                cmdAdd.Fill(ds2);

                DDLCase.DataSource = ds2;
                DDLCase.DataTextField = "memberreportid";
                DDLCase.DataValueField = "memberreportid";
                DDLCase.DataBind();

            }

            sql = "Select username, memberreportid, location, crdatetime, citizenreport, image1, image2, image3, image4, image5 from MemberReport where typeofcrime ='" + DDLTOC.SelectedItem.Text + "' and handle='handled'";
            using (var cmdAdd = new SqlDataAdapter(sql, connAdd))
            {
                DataSet dsSel = new DataSet();
                cmdAdd.Fill(dsSel);
                GVCR.DataSource = dsSel;
                GVCR.DataBind();
            }

            connAdd.Close();
        }


    }
DDLTOC_SelectedIndex中的第一个绑定基本上允许根据DDLTOC中选择的值在dropdownlist上显示DDLCase的值。第二个绑定将在gridview中显示数据库中的必要值。我有2个数据库值,将显示在DDLTOC、帮派和抢劫中。因此,如果我随机选择组,然后选择返回默认值,然后选择组,再返回选择默认值,它将在我的DDLCase上显示两次组的DDLCase值


为什么会出现重复数据

在数据绑定之前,只需清除其项集合。将数据绑定代码部分修改为:

DDLCase.Items.Clear();
DDLCase.DataSource = ds2;
DDLCase.DataTextField = "memberreportid";
DDLCase.DataValueField = "memberreportid";
DDLCase.DataBind();
DDLCase.Items.Insert(0, new ListItem("Select Case", ""));
DDLCase.SelectedIndex = 0;

或者,您可以在
DDLCase
标记中设置
EnableViewState=“False”
但是在这种情况下,如果页面上发生任何其他回发(而不是
ddlcose
,比如从一个不再填充
DDLCase
的按钮),则
DDLCase
的数据将丢失。它是
DDLCase
ViewState
,它保持了它以前的状态,以便在交叉请求中下拉项不会丢失。除非其ViewState被禁用,否则您只是将其添加到其项目集合中。

如果我要插入项目。清除();在数据绑定之前,当我选择DDLTOC值时,DDLCase中的默认值将消失。如果我没记错的话,ASP.Net有一个错误,第一个选项无法选择。我尝试启用视图状态,当我在DDLTOC中选择一个选项时,它将仅显示我的默认值
DDLCase
的默认值是什么?您可以清除项目集合,然后进行数据绑定,然后使用
items.InsertAt(0)
插入该值;然后可以使用
SelectedIndex=0
作为要选择的默认值。你能发布
DDLCase
的标记吗?
protected void Page_Load(object sender, EventArgs e)
    {
        if (Page.IsPostBack == false)
        {
            SqlConnection conn = new SqlConnection("Data Source=localhost;" +
                "Initial Catalog=project; Integrated Security = SSPI");

            SqlDataAdapter da = new SqlDataAdapter("SELECT distinct typeofcrime FROM MemberReport where handle='handled' AND caseprogress='settled'", conn);
            conn.Open();

            DataSet ds = new DataSet();
            da.Fill(ds);

            DDLTOC.DataSource = ds;
            DDLTOC.DataTextField = "typeofcrime";
            DDLTOC.DataValueField = "typeofcrime";
            DDLTOC.DataBind();                   

            conn.Close();

        }

    }
protected void DDLTOC_SelectedIndexChanged(object sender, EventArgs e)
    {
        using (var connAdd = new SqlConnection("Data Source = localhost; Initial Catalog = project; Integrated Security= SSPI"))
        {
            connAdd.Open();

            var sql = "SELECT memberreportid FROM MemberReport Where typeofcrime ='" + DDLTOC.SelectedValue + "' AND caseprogress='settled'";
            using (var cmdAdd = new SqlDataAdapter(sql, connAdd))
            {
                DataSet ds2 = new DataSet();
                cmdAdd.Fill(ds2);

                DDLCase.DataSource = ds2;
                DDLCase.DataTextField = "memberreportid";
                DDLCase.DataValueField = "memberreportid";
                DDLCase.DataBind();

            }

            sql = "Select username, memberreportid, location, crdatetime, citizenreport, image1, image2, image3, image4, image5 from MemberReport where typeofcrime ='" + DDLTOC.SelectedItem.Text + "' and handle='handled'";
            using (var cmdAdd = new SqlDataAdapter(sql, connAdd))
            {
                DataSet dsSel = new DataSet();
                cmdAdd.Fill(dsSel);
                GVCR.DataSource = dsSel;
                GVCR.DataBind();
            }

            connAdd.Close();
        }


    }
DDLCase.Items.Clear();
DDLCase.DataSource = ds2;
DDLCase.DataTextField = "memberreportid";
DDLCase.DataValueField = "memberreportid";
DDLCase.DataBind();
DDLCase.Items.Insert(0, new ListItem("Select Case", ""));
DDLCase.SelectedIndex = 0;