Repeater中的条件判断,以及嵌套判断if...else... .

来源:互联网 发布:史丹利的寓言 for mac 编辑:程序博客网 时间:2024/05/16 14:36

同样遇到了在Repeater绑定数据过程中增加判断的问题,百度了一下,看了几篇文章,大有收获,遂整理后,结合自己的内容,加以发布,共同分享!

 

http://www.newasp.net/tech/asp/14018.html

 

http://space.cnblogs.com/question/9741/

 

http://www.z6688.com/info/34246-1.htm

 

执行判断总结起来有两种方式:

一种是

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

--适合简单判断,Yes Or NO

另一种是将数据发到后台处理

--引用http://space.cnblogs.com/question/9741/里面的内容

--前台代码

<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;
    }

原创粉丝点击