リピータには、リンクボタンをクリックするまで表示されないユーザコントロールに渡す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>
私はこれらがユーザーコントロールのコードビハインドでget/setアクセッサが、彼らは常に空白だ持っている:
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
にそれを保存する
こんにちは - 私は実際にそれを行います。私はセッション変数として設定しようとしましたが、ページのライフサイクルのために、コントロールがロードされた後に起こるようです。したがって、policyNumberを使用してロードされないため、空白です。 –
'HiddenField 'あなたのコントロールの中で私の編集を確認してください –
ありがとう非常に - 隠されたフィールドメソッドは私のために働いた。 –