【发布时间】:2016-01-15 15:06:46
【问题描述】:
我知道这是一个很常见的问题,但我还没有通过互联网找到解决方案。也许我进入了隧道视野,我不知道。
我有一个gridview,并且与之相关的下拉列表不断重置。已经几个小时了,我仍然遇到这个问题。
具有 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: </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:  </asp:Label>
</td>
<td>
<asp:TextBox runat="server" ID="txtGumrukKodu"></asp:TextBox>
</td>
<td>
<asp:Label runat="server" ID="lblGumrukAdi">Gümrük Adı:  </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>
代码隐藏
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;
}
只是相关部分,如果我遗漏了什么,请告诉我。
我尝试使用视图状态变量,但它们也不断被重置。
编辑:
我在互联网上看到了一些关于这个问题的帖子。他们说作为一种解决方案,他们的下拉列表值字段不是唯一的。我检查了 value 字段,它的值都是唯一的。
【问题讨论】:
-
发布您的
drpUlke_SelectedIndexChanged -
这是一个空方法atm,我之前尝试过,但它也没有解决问题。尝试在其中添加一个变量以通过 viewstate 变量保存所选值,但没有用:(
标签: c# asp.net postback dropdown