您的位置:首页 > 编程语言 > ASP

asp.net的checkbox没有value属性的解决办法

2012-08-23 14:58 501 查看
.net Web程序的CheckBox Server控件没有Value属性。可是如果把CheckBox放到DataList里面就很需要让CheckBox的Texe属性显示名称,而Value属性显示Id。

这个问题的一个解决方法是在DateList里面再放一个HiddenField服务器控件,用来存放Id。

aspx的解决办法
<asp:DataList ID="DataList1" runat="server" RepeatColumns="3"


Style="vertical-align: top;">


<ItemTemplate>


<div style="text-align: right; padding-right: 10px; width:190px;">


<asp:CheckBox ID="chkAdvice" runat="server"


CssClass="fromgrid" Text='<%# DataBinder.Eval(Container, "DataItem.AdviceName") %>'


TextAlign="Left" />


<asp:HiddenField ID="hidAdvice" Value='<%# DataBinder.Eval(Container, "DataItem.DrsAdviceId") %>' runat="server" />


</div>


</ItemTemplate>


</asp:DataList>
在服务器端可以这样来取得名称和Id
.cs的解决办法


foreach (DataListItem item in DataList1.Items)

{

CheckBox chkAdvice = item.FindControl("chkAdvice") as CheckBox;

HiddenField hid = item.FindControl("hidAdvice") as HiddenField;

bool checked = chkAdvice.Checked;

string id = hid.Value;

}
可是今天突然想能不能不放那个HiddenField呢?于是尝试把Id放到CheckBox的Style里面,寒。
.aspx的解决办法
<asp:DataList ID="DataList1" runat="server" RepeatColumns="5" RepeatLayout="Table"


Style="vertical-align: top;">


<ItemTemplate>


<div style="text-align: right; padding-right: 30px;">


<asp:CheckBox ID="chkAdvice" runat="server"


CssClass="fromgrid" Text='<%# DataBinder.Eval(Container, "DataItem.AdviceName") %>'

style='<%# "aaa:" + DataBinder.Eval(Container, "DataItem.DrsAdviceId") %>'


TextAlign="Left" />


</div>


</ItemTemplate>


</asp:DataList>
在服务器端可以这样取得Id的值
.cs的解决办法:
foreach (DataListItem item in DataList1.Items)

{

CheckBox chkAdvice = item.FindControl("chkAdvice") as CheckBox;

string id = chkAdvice.Style["aaa"];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐