您所在的位置: 程序员家园 -> 家园博客 ->
 
在哪里摔倒
就在哪里自己爬起来

用户登录

查  找

最新评论

最新留言

常用网站

网易邮箱 GMAIL  

百度搜索 MSDN

霏凡软件 BT精品

影视帝国 射 手 网

电驴下载 全 库 网

友情连接

茄菲的窝 冰冰博客

枫叶飘零 玫  瑰

ACEN 云 豹 子

统  计



用GridView做像批量添加数据一样的东西
狼子 发表于 2007-2-10 14:12:00 阅读全文 | 回复(0) | 引用通告 | 编辑

就是要做像图片上显示的东西

这个集数的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方法取每一个控件的值,就可以了

发表评论:

    昵称:
    密码:
    主页:
    标题:
Powered by Oblog.