asp.net - 将参数传递给中继器内的用户控件

标签 asp.net user-controls

我有一个中继器,其中列出了数据,其中包括我传递给用户控件的 ID,该控件在单击链接按钮之前不可见。然而,当我点击链接按钮时,ID 就丢失了。

有人知道我哪里出错了吗?

这是中继器的代码:

<asp:Repeater ID="uxPolicyList" runat="server" onitemdatabound="uxPolicyList_ItemDataBound">
        <ItemTemplate>
                    <tr>
                        <td class="smaller-ctrl">
                            <img src="Assets/Images/home-icon.gif" alt="Home Insurance Policy" /><%#Eval("PolicyNumber")%>
                        </td>
                        <td>
                            <%#Eval("StartDate","{0:d}")%>
                        </td>
                        <td class="center-cell-ctrl">
                            <%#Eval("Renewal", "{0:d}")%>
                        </td>
                        <td class="center-cell-ctrl">
                            Postcode:<br />
                            <%#Eval("Postcode")%>
                        </td>
                        <td id='<%#Eval("PolicyNumber")%>' class="button-cell">
                            <asp:LinkButton ID="uxPolicySummaryButton" CssClass="policy-link-ctrl" CommandName="PolicyNumber" CommandArgument='<%#Eval("PolicyNumber")%>' OnCommand="uxPolicySummaryButton_Command" runat="server">Policy summary<br /></asp:LinkButton>

                        </td>
                    </tr>
                    <uc1:PolicySummary ID="uxPolicySummary" PolicyNumber='<%#Eval("PolicyNumber")%>' runat="server" Visible="false" />
        </ItemTemplate>

我在用户控件代码隐藏中有这些获取/设置访问器,但它们始终为空:

public string _policyNumber = string.Empty;

    public string PolicyNumber
    {
        get
        {
            return _policyNumber;
        }
        set
        {
            _policyNumber = value;
        }
    }

测试时,我在用户控件中硬编码了一个值。即

<uc1:PolicySummary ID="uxPolicySummary" PolicyNumber="545545-5454-54545" runat="server" Visible="false" />

...效果很好。任何想法表示赞赏

最佳答案

尝试使用 CommandArgument 的值重新分配 OnCommand 事件中的 PolicyNumber 属性的值

编辑

或将其保存到控件内的HiddenField

public string PolicyNumber
{
    get
    {
        return MyHiddenField.Value;
    }
    set
    {
        MyHiddenField.Value = value;
    }
}

关于asp.net - 将参数传递给中继器内的用户控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6667715/

相关文章:

c# - uwp 我应该在数据模板中使用用户控件吗?

c# - 使用两个 View 并在 View 之间切换

.net - 拦截/覆盖自定义控件上的 Name 属性?

asp.net - 文本从包含的框中溢出

c# - 如何使用 EF Core 更新 ASP.NET 5 中的 dbcontext 脚手架?

javascript - 如何初始化一个包含方法的类

c# - 回发后开始文件下载

c# - ASP.NET 通用处理程序和 session

javascript - asp.net 中未显示模态弹出窗口

matlab - 创建自定义且可重用的用户界面控件