就是要做像图片上显示的东西
这个集数的GridView是嵌套在FormView里的
<asp:FormView ID="FormView1" runat="server">
<tr>
<td align="center">集 数:</td>
<td colspan="3">
一共<asp:TextBox ID="VolumeNumTextBox" runat="server" MaxLength="4" Width="50"></asp:TextBox>集
<asp:Button ID="Button1" runat="server" Text="设定" CausesValidation="False" CommandName="SetVolume" UseSubmitBehavior="False" />
<asp:Label ID="LabelVolumeMsg" runat="server" ForeColor="#FF0000"></asp:Label>
<asp:Label ID="vTimeLabel" runat="server" CssClass="hid"></asp:Label>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CssClass="tablelist2" HorizontalAlign="Center" Width="98%">
<Columns>
<asp:TemplateField HeaderText="集名" SortExpression="VolumeName">
<ItemTemplate>
<asp:Label ID="VolumeNameLabel" runat="server"></asp:Label>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" Width="60px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="服务器" SortExpression="ServerID">
<ItemTemplate>
<asp:DropDownList ID="ServerIDDropDownList" runat="server" DataSourceID="odsServer" DataTextField="ServerName" DataValueField="ServerID">
</asp:DropDownList>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" Width="80px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="描述" SortExpression="FileTitle">
<ItemTemplate>
<asp:DropDownList ID="FileTitleDropDownList" runat="server" DataSourceID="odsFileTitle" DataTextField="FileTitle" DataValueField="FileTitle">
</asp:DropDownList>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" Width="80px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="播放地址" SortExpression="FileUrl">
<ItemTemplate>
<asp:TextBox ID="FileUrlTextBox" runat="server" Width="90%"></asp:TextBox>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
</Columns>
</asp:GridView>
</td>
</tr>
</asp:FormView>
就是两个方法,一个是根据文本框里输入的数字设置GridView里的行,初始化每一行的数据,一个是从GridView里取用户录入的数据保存
怎么从FormView里取这个GridView这些我不写了,就是一个FindControl,很简单的,我这里记录这个方法:
private void SetGridViewRow(GridView mygv, int row)
{
DataTable dt = new DataTable("Volume");
//添加四列
dt.Columns.Add("集名");
dt.Columns.Add("服务器");
dt.Columns.Add("描述");
dt.Columns.Add("播放地址");
//添加行
for (int i = 0; i < row; i++)
{
dt.Rows.Add(new object[] { "", "", "", "" });
}
//保存这些行,把它写到GridView里
dt.AcceptChanges();
mygv.DataSource = dt;
mygv.DataBind();
//初始化每一行的集名
string VolumeName="";
foreach (GridViewRow gvr in mygv.Rows)
{
VolumeName = "第 " + Convert.ToString(gvr.RowIndex + 1) + " 集";
((Label)gvr.FindControl("VolumeNameLabel")).Text = VolumeName;
}
}
这个方法是要在mygv里添加row行,并且初始化每一行
取的时候也很简单,就是一行一行取,用一个foreach (GridViewRow gvr in mygv.Rows)循环,然后呢,对gvr使用FindControl方法取每一个控件的值,就可以了