4

リピーター内の値を変更しようとしています:(itemdataboundイベントを介して)

年が空の場合-設定値blabla

私のリピーター:

 <ItemTemplate>
                <tr  >
                    <td  >
                        <%#Eval("year") %>
                   </td>

私のc#コード:

 void RPT_Bordereaux_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            if (string.IsNullOrEmpty(((DataRowView)e.Item.DataItem)["year"].ToString()))
            { 
                (((DataRowView)e.Item.DataItem)["year"]) = "blabla"; // ???????

            }
        }

変更されますが、リピーターには表示されません(古い値が表示されます)。

1つの解決策は、 -にserver controlor literal(runat server)を追加し、サーバーの""に値を変更することです。itemTemplatefindControl

他の解決策はjQueryによるものです-空の最後のTDを検索します。

しかし-私の質問:

他のサーバー側の解決策はありますか()?

4

3 に答える 3

7

次のようなものを試すことができます:

.aspx のリピーター:

<asp:Repeater ID="Repeater1" runat="server">
    <ItemTemplate>
    <table>
    <tr>
          <td> <%# GetText(Container.DataItem) %></td>
    </tr>

    </table>
    </ItemTemplate>
</asp:Repeater>

.cs :

 protected static string GetText(object dataItem)
 {
    string year = Convert.ToString(DataBinder.Eval(dataItem, "year"));
    if (!string.IsNullOrEmpty(year))
    {
        return year;
    }
    else
    {
        return "blahblah";
    }

 }

INGetTextメソッドでは、文字列が空かどうかを文字列で確認して、文字列を返すことができます。

于 2012-05-06T10:59:48.470 に答える
1

HTMLファイル

<asp:Repeater ID="RPT_Bordereaux" runat="server">
    <ItemTemplate>
    <table>
    <tr>
          <td> <%# GetValue(Container.DataItem) %></td>
    </tr>

    </table>
    </ItemTemplate>
</asp:Repeater>

.CSコード

protected void RPT_Bordereaux_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
   {
   }
}


protected static string GetValue(object dataItem)
{
   string year = Convert.ToString(DataBinder.Eval(dataItem, "year"));
    if (!string.IsNullOrEmpty(year))
     {
       return Convert.ToString(year);
     }
     else
            {
                return "blahbla";
            }

         }

これはうまくいくはずです

于 2012-05-06T11:08:35.893 に答える