Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.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/1/asp.net/34.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# Dropdownlist重置,在回发期间不保留值_C#_Asp.net_Postback_Dropdown - Fatal编程技术网

C# Dropdownlist重置,在回发期间不保留值

C# Dropdownlist重置,在回发期间不保留值,c#,asp.net,postback,dropdown,C#,Asp.net,Postback,Dropdown,我知道这是一个很常见的问题,但我还没有在互联网上找到解决方案。也许我进入了一个隧道视野,我不知道 我有一个gridview,与之相关的dropdownlist不断重置。已经好几个小时了,我仍然有这个问题 包含DropDownList的表 <table class="filtertable" EnableViewState="true"> <tr align="center"> <td width="100%">

我知道这是一个很常见的问题,但我还没有在互联网上找到解决方案。也许我进入了一个隧道视野,我不知道

我有一个gridview,与之相关的dropdownlist不断重置。已经好几个小时了,我仍然有这个问题

包含DropDownList的表

<table class="filtertable" EnableViewState="true">
        <tr align="center">
            <td width="100%">
                <asp:Button ID="btnNew" runat="server" Text="Yeni Kayıt" OnClick="btnNew_OnClick"
                    CssClass="btn" Visible="true" />
                <asp:Button ID="btnArama" runat="server" Text="Gümrük Arama" OnClick="btnArama_Click"
                    CssClass="btn" Visible="false" />
            </td>
        </tr>
        <tr runat="server" id="trGumrukArama">
            <td>
                <fieldset style="margin-top: 5px">
                    <legend>Ülke Gümrük Arama</legend>
                    <table EnableViewState="true">
                        <tr>
                            <td>
                                <asp:Label runat="server" ID="lblUlke">Ülke:&nbsp</asp:Label>
                            </td>
                            <td>
                                <asp:DropDownList runat="server" ID="drpUlke" AppendDataBoundItems="true" EnableViewState="true"
                                    OnSelectedIndexChanged="drpUlke_SelectedIndexChanged" AutoPostBack="true">
                                </asp:DropDownList>
                            </td>
                            <td>
                                <asp:Label runat="server" ID="lblGumrukKodu"> Gümrük Kodu: &nbsp</asp:Label>
                            </td>
                            <td>
                                <asp:TextBox runat="server" ID="txtGumrukKodu"></asp:TextBox>
                            </td>
                            <td>
                                <asp:Label runat="server" ID="lblGumrukAdi">Gümrük Adı: &nbsp</asp:Label>
                            </td>
                            <td>
                                <asp:TextBox runat="server" ID="txtGumrukAdi"></asp:TextBox>
                            </td>
                            <td>
                                <asp:Button runat="server" CssClass="btn" ID="btnSearch" Text="Ara" OnClick="btnSearch_OnClick" />
                            </td>
                        </tr>
                    </table>
                </fieldset>
            </td>
        </tr>
    </table>

Ülke Gümük Arama
Ülke:
居克·科杜先生:
Gümrük Adı
代码隐藏

protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            drpUlke_Bind();
            BindList();
            //drpUlke.SelectedValue = ViewState["ListUlkeKod"].ToString();
        }
    }

    protected void drpUlke_Bind()
    {
        DataTable dt = CacheManager.UlkelerGercek.Tables[0];
        DataTable dtNew = CacheManager.UlkelerGercek.Tables[0].Clone();

        DataRow drseperator = dtNew.NewRow();
        drseperator["id"] = -1;
        drseperator["harfKod"] = "";
        drseperator["adi"] = "------------------------------------";
        dtNew.Rows.Add(drseperator);

        for (int i = 0; i < dt.Rows.Count; i++)
        {
            DataRow dr = dtNew.NewRow();
            dr.ItemArray = dt.Rows[i].ItemArray;
            dr["adi"] = dr["harfKod"] + " - " + dr["adi"];
            if (dr["harfKod"].ToString().Trim() == "TR")
                dtNew.Rows.InsertAt(dr, 0);
            else
                dtNew.Rows.Add(dr);
        }
        drpUlke.DataSource = dtNew;
        drpUlke.DataValueField = "harfKod";
        drpUlke.DataTextField = "adi";
        drpUlke.DataBind();

        drpKaydetUlke.DataSource = dtNew;
        drpKaydetUlke.DataValueField = "harfKod";
        drpKaydetUlke.DataTextField = "adi";
        drpKaydetUlke.DataBind();
    }

    protected void drpUlke_SelectedIndexChanged(object sender, EventArgs e)
    {

    }

.
.
.
.
.

private void BindList()
    {
        int TotalCount;
        int Start = (CurrentPageIndex - 1) * _pageRowCount;

        string UlkeKodu = drpUlke.SelectedValue;
        //ViewState["ListUlkeKod"] = UlkeKodu;
        string GumrukKodu = txtGumrukKodu.Text;
        string GumrukAdi = txtGumrukAdi.Text;
        //drpUlke.SelectedValue = ViewState["ListUlkeKod"].ToString();

        DataSet ds = (Stored Procedure Here)
        gvUlkeGumruk.DataSource = ds;
        gvUlkeGumruk.DataBind();

        int intTotalCount;
        int intCurrentCount;

        intTotalCount = TotalCount == -1 ? 0 : TotalCount;
        intCurrentCount = ds.Tables[0].Rows.Count - 1;

        pcBottom.TotalRowCount = intTotalCount;
        pcBottom.PageRowCount = _pageRowCount;
        pcBottom.CurrentRowCount = intCurrentCount;

        pcBottom.BindPaging();

        pcBottom.Visible = intTotalCount > 0;
    }
受保护的无效页面加载(对象发送方,事件参数e)
{
如果(!Page.IsPostBack)
{
drpUlke_Bind();
BindList();
//drpUlke.SelectedValue=ViewState[“ListUlkeKod”].ToString();
}
}
受保护的无效drpUlke_Bind()
{
DataTable dt=CacheManager.UlkelerGercek.Tables[0];
DataTable dtNew=CacheManager.UlkelerGercek.Tables[0].Clone();
DataRow drseparator=dtNew.NewRow();
drseparator[“id”]=-1;
drseparator[“harfKod”]=“”;
DRSeparator[“adi”]=“---------------------------------------”;
dtNew.Rows.Add(drseparator);
对于(int i=0;i0;
}
只是相关部分,如果我遗漏了什么,请告诉我

我尝试使用viewstate变量,但它们也不断被重置

编辑:


我在网上看到了一些关于这个问题的帖子。他们说,作为一种解决方案,他们的下拉列表值字段不是唯一的。我检查了值字段,它的值都是唯一的。

如果您希望DDL数据在回发过程中幸存,则必须在回发生命周期中重新加载DDL。您可以手动执行此操作,也可以启用ViewState,这是您必须在控制链上执行的操作


如果您采用手动方式在control/page init中加载数据(不管IsPostBack标志如何),则可以通过确保缓存数据来提高性能。您将跳过ViewState(对客户端性能有好处),但会更多地影响数据库。如果这是一个问题,那么您可以返回到使用ViewState。

当您希望DDL数据在回发过程中幸存下来时,您必须在回发生命周期中重新加载DDL。您可以手动执行此操作,也可以启用ViewState,这是您必须在控制链上执行的操作


如果您采用手动方式在control/page init中加载数据(不管IsPostBack标志如何),则可以通过确保缓存数据来提高性能。您将跳过ViewState(对客户端性能有好处),但会更多地影响数据库。如果这是一个问题,那么您可以返回使用ViewState。

这可能是由于
AppendDataBoundItems=“true”
造成的。已删除该属性并重试

这可能是因为
AppendDataBoundItems=“true”
。删除该属性并重试

以上答案在他们自己的情况下是正确的,不会被视为不正确而驳回。由于我问题的性质,我不能指定一个作为答案


最后,我将下拉选项作为请求参数发送到其他页面。我们正在使用一种自定义分页机制,这就是我不得不以这种方式结束的原因

以上答案在他们自己的案例中是正确的,不能因为不正确而不予理会。由于我问题的性质,我不能指定一个作为答案

最后,我将下拉选项作为请求参数发送到其他页面。我们是美国