首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ControlParameter是否返回以前的值?

ControlParameter是否返回以前的值?
EN

Stack Overflow用户
提问于 2016-01-08 03:41:19
回答 1查看 27关注 0票数 0

我正在尝试创建一个主视图/详细视图。我的DetailsView可以正常工作,在它自己的页面上,我的GridView显示我的EquipmentDataSource也可以正常工作。我可以使用FilterParamaters过滤GridView

代码语言:javascript
复制
<FilterParameters>
    <%-- ControlParameter.Name will String.Formatted with the control's value --%>
    <asp:ControlParameter Type="String" Name='eEquipment.Contains("{0}")' ControlID="txtNumber" PropertyName="Text" />
</FilterParameters>

(我理解动态Linq表达式,因为控件名称是糟糕的设计)

当我尝试根据DetailsView显示的项的键进行过滤时,问题就出现了。如果我切换到PO#为123的条目,则ControlParameter将计算为123。我认为它可能是从ViewState中获取值,而不是控件当前拥有的值,但我不知道为什么。

代码:

代码语言:javascript
复制
<cc:ProcurementDataSource ID="dsProcurements" runat="server" />
<asp:DetailsView ID="dtvProcurements" runat="server" AllowPaging="True" DataSourceID="dsProcurements" />
<cc:EquipmentDataSource ID="dsEquipment" runat="server">
    <FilterParameters>
        <asp:ControlParameter Type="String" Name='ePO == "{0}"' ControlID="dtvProcurements" PropertyName="DataItem.epClientPO" />
    </FilterParameters>
</cc:EquipmentDataSource>
<asp:GridView ID="GridView1" runat="server" DataSourceID="dsEquipment" />

我要给Page_Load上的Page.DataBind()打电话我尝试在每个控件上手动调用DataBind(),以防它以一种奇怪的顺序发生,但这似乎没有帮助。

EN

回答 1

Stack Overflow用户

发布于 2016-01-08 05:00:28

看起来我对Control.DataBind()是否被阻塞感到困惑。

代码语言:javascript
复制
protected void Page_Load(object sender, EventArgs e)
{
    AutoMapperConfiguration.Initialize();
    dtvProcurements.DataBind();
    GridView1.DataBind();
}

不能正常工作,而这样做:

代码语言:javascript
复制
protected void Page_Load(object sender, EventArgs e)
{
    AutoMapperConfiguration.Initialize();
    dtvProcurements.DataBind();
}

protected void dtvProcurements_DataBound(object sender, EventArgs e)
{
    GridView1.DataBind();
} 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34663767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档