3 sql vb.net asp.net data-binding radiobuttonlist
我在gridview中有单选按钮列表,需要绑定到一列。如果列中的值为0,则选择第一个单选按钮;如果为1,则选择另一个。
这是代码,部分代码因为没有必要而被部分删除
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<>"
SelectCommand="" SelectCommandType="StoredProcedure" UpdateCommand="">
<SelectParameters></SelectParameters>
<UpdateParameters></UpdateParameters>
</asp:SqlDataSource>
<asp:GridView ID="gvBlockDetail" runat="server" AutoGenerateColumns="False"
DataKeyNames="curriculumyear,electiveid,blockid" DataSourceID="SqlDataSource1"
HorizontalAlign="Left" CellPadding="1" CssClass="news" GridLines="None"
BorderColor="#ebe9e2" BorderStyle="Solid" BorderWidth="1" >
<AlternatingRowStyle BackColor="#ebe9e2" />
<HeaderStyle BackColor="#660000" ForeColor="White" Font-Size="Small" />
<RowStyle Font-Size="9pt" Wrap="false" ForeColor="#660000" HorizontalAlign="Center" />
<Columns>
<asp:TemplateField HeaderText="Add/Remove">
<HeaderStyle Width="15%" />
<ItemStyle Wrap="false" Width="80px" />
<ItemTemplate>
<asp:RadioButtonList ID="rblAddRemove" runat="server" RepeatDirection="Horizontal">
<asp:ListItem Text="Add" Value="0"></asp:ListItem>
<asp:ListItem Text="Remove" Value="1"></asp:ListItem>
</asp:RadioButtonList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Block">
<HeaderStyle Width="15%" />
<ItemStyle Wrap="false" Width="50px" />
<ItemTemplate>
<asp:Label ID="lblBlock" runat="server" Text='<%# Bind("Block") %>'></asp:Label>
<asp:Label ID="lblSection" runat="server" Text='<%# Bind("Section") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="daterange" HeaderText="Dates" ReadOnly="True" SortExpression="daterange" />
<asp:BoundField DataField="credithours" HeaderText="Credit Hrs"
SortExpression="credithours" HeaderStyle-Width="10%" ItemStyle-Width="10%" />
<asp:TemplateField HeaderText="Students<br>Per Block" HeaderStyle-Width="15%" SortExpression="studentsperblock">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("studentsperblock") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:TextBox ID="txtStudentsPerBlock" runat="server" MaxLength="3" Width="40px" Text='<%# Bind("studentsperblock") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="enrolled" HeaderText="Enrolled" ReadOnly="True"
SortExpression="enrolled" ItemStyle-Width="200px" />
<asp:BoundField DataField="blockid" HeaderText="blockid" ReadOnly="True"
SortExpression="blockid" Visible="false" />
</Columns>
</asp:GridView>
Run Code Online (Sandbox Code Playgroud)
代码背后:
Protected Sub gvBlockDetail_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvBlockDetail.RowDataBound
End Sub
Run Code Online (Sandbox Code Playgroud)
您可以尝试内联绑定:
<asp:RadioButtonList ID="rblAddRemove" runat="server" RepeatDirection="Horizontal" SelectedValue='<%# Bind("YOURCOLUMN") %>'>
<asp:ListItem Text="Add" Value="0"></asp:ListItem>
<asp:ListItem Text="Remove" Value="1"></asp:ListItem>
</asp:RadioButtonList>
Run Code Online (Sandbox Code Playgroud)
yourcolumn您描述的int列在哪里。
或通过RowDataBound事件。(伪代码,属性可能具有不同的名称,而我使用的是C#)
Protected Sub gvBlockDetail_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvBlockDetail.RowDataBound
if(e.Row.RowType == RowType.DataRow)
{
RadioButtonList rbl = e.Row.FindControl("rblAddRemove") as RadioButtonList;
if(rbl != null)
{
rbl.SelectedValue = ((YOURDATAITEM)(e.Row.DataItem).YourProperty.ToString();
}
}
End Sub
Run Code Online (Sandbox Code Playgroud)
编辑:我看到你没有使用自定义类。您需要使用调整线YOURDATAITEM。使用快速监视来了解如何强制转换对象以获得所需的属性。
| 归档时间: |
|
| 查看次数: |
22929 次 |
| 最近记录: |