1. 程式人生 > >Repeater中的條件判斷,以及巢狀判斷if...else... .

Repeater中的條件判斷,以及巢狀判斷if...else... .

同樣遇到了在Repeater繫結資料過程中增加判斷的問題,百度了一下,看了幾篇文章,大有收穫,遂整理後,結合自己的內容,加以釋出,共同分享!

執行判斷總結起來有兩種方式:

一種是

--<%# DataBinder.Eval(Container.DataItem, "[/"User_Answer/"]").ToString()!=""?"a":"b"%>

--適合簡單判斷,Yes Or NO

另一種是將資料發到後臺處理

--前臺程式碼

<asp:TemplateColumn HeaderText="性別">

<ItemTemplate>

<asp:RadioButton runat="server" Checked='<%# ReturnBool(Convert.ToString(DataBinder.Eval(Container.DataItem,"IsParty")))%>' GroupName="dang" Text="是"/>

</ItemTemplate>

</asp:TemplateColumn>

--後臺程式碼

protected string ReturnBool(string str)

{

if(str== "1")

return true;

else

return false;

}

上面的在為RadioButton增加動態Id時會出問題, 不如使用<input type="radio">方便

下面是我的程式碼:

--前臺

  --使用下面的後臺方法輸出<Input Radio>

 <%# CreateSelectRadio((DataRow)Container.DataItem) %>     

  --下面是Radio的Text                
 <%# DataBinder.Eval(Container.DataItem, "[/"Option_id/"]")%>.<%# DataBinder.Eval(Container.DataItem, "[/"Option_text/"]")%>    

--後臺程式碼

-----裡面增加了子資料行與父資料行之間的判斷。

protected string CreateSelectRadio(DataRow dr)
    {
        DataRow drParent = dr.GetParentRow("rel_question");
        string sRadio = "<input type='radio'";
        sRadio += " id='radio" + dr["Question_id"].ToString() + "_" + dr["Option_id"].ToString() + "'";
        sRadio += " name='radio" + dr["Question_id"].ToString() + "'";
        if (dr["Option_id"].ToString() == drParent["User_Answer"].ToString())
            sRadio += " checked";
        sRadio += " onclick='setOptionValue(/"div" + dr["Question_id"].ToString() + "/",/"" + dr["Option_id"].ToString() + "/")'";
        sRadio += "/>";
        return sRadio;
    }