我有一个中继器,其中列出了数据,其中包括我传递给用户控件的 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/