【问题标题】:textbox inside updatepanel losing data更新面板内的文本框丢失数据
【发布时间】:2012-04-18 15:26:55
【问题描述】:

我有一个 updatePanel,它有一个 textbox 作为 content 和一个 dropdownlist 作为 触发。 每当我更改 dropdownlistselectedIndex 时,它都会查询数据库,它会为我提供 textbox 的 value

现在我输入了一些新的,然后单击更新 按钮,它将保存在数据库中。

这里的问题,它一直让我得到旧的下拉列表带来的值)。

我该如何解决这个问题?

编辑

          <asp:UpdatePanel ID="uplKmAllowed" runat="server">
            <ContentTemplate>
                <dx:ASPxTextBox ID="txtKmAllowed" runat="server" Width="215px" OnTextChanged="txtKmAllowed_TextChanged">
                </dx:ASPxTextBox>
            </ContentTemplate>
        </asp:UpdatePanel>

后面的代码:这是以编程方式添加触发器,因为 cboAsset 在用户控件中

   asset = fltrAsset.FindControl("cboAsset") as ASPxComboBox;
asset.AutoPostBack = true;

asset.SelectedIndexChanged += new EventHandler(Asset_SelectIndexChanged); 
        AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
        trigger.ControlID = asset.UniqueID;
        trigger.EventName = "SelectedIndexChanged";

        uplKmAllowed.Triggers.Add(trigger);

功能

 protected void Asset_SelectIndexChanged(object sender, EventArgs e)
    {
        string tudID = asset.SelectedItem.Value.ToString();
        RentalTracking rtk = new RentalTracking();
        string assetID = rtk.getAssetIDDepartmentIDbyTudID(tudID)[1];
        RentalAssetInfo rai = new RentalAssetInfo();
        rai.GetRentalAssetInfo(Int32.Parse(assetID));
        if (rai.KMAllowed == 0 || rai.KMAllowed == -1 || rai.KMAllowed == null)
        {
            kmallowedSaved = false;
            txtKmAllowed.Text = "";
        }
        else
        {
            txtKmAllowed.Text = rai.KMAllowed.ToString();
        }
    }

【问题讨论】:

  • 你检查了 IsPostback 吗?? 如果是,我们可以看看你的代码吗
  • yupzz,代码有一个IsPostback,在pageload中,
  • 文本框里有runat=server吗?
  • 是的,文本框里面有一个 runat=server,我试图让按钮 autopostback=false,所以它在获得值之前不会刷新,但它不能正常工作:S
  • UpdatePanel 是否在 UserControl 内?

标签: c# asp.net textbox drop-down-menu updatepanel


【解决方案1】:
use asp:AsyncPostBackTrigger in update panel
  <asp:UpdatePanel ID="uplKmAllowed" runat="server">
            <ContentTemplate>
                <dx:ASPxTextBox ID="txtKmAllowed" runat="server" Width="215px" OnTextChanged="txtKmAllowed_TextChanged">
                </dx:ASPxTextBox>
            </ContentTemplate>
 <Triggers>
            <asp:AsyncPostBackTrigger ControlID="LnkEditBuyingLead" EventName="EventName"/>
        </Triggers>
        </asp:UpdatePanel>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-01
    • 1970-01-01
    相关资源
    最近更新 更多