none
formview 里的fileupload控件获取不到~ RRS feed

  • 问题

  • FileUpload fuPicture = FormView1.FindControl("fuPicture") as FileUpload;

    FileUpload fuPicture = (FileUpload)FormView1.FindControl("fuPicture ");

    这两种方法都用了还是不行 formview控件里面确实有fileupload控件 但是提示编译器错误消息: CS1061: “admin_EditCommodity”不包含“fuPicture ”的定义,并且找不到可接受类型为“admin_EditCommodity”的第一个参数的扩展方法“fuPicture ”(是否缺少 using 指令或程序集引用?)

    部分代码:

            FileUpload fuPicture = FormView1.FindControl("fuPicture ") as FileUpload;

            //上传图片
            bool files = false;
            if (this.fuPicture .HasFile
            {。。。}

    2013年1月11日 3:31

全部回复

  • 放在FormView_DataBound事件里面试试:

        protected void FormView1_DataBound(object sender, EventArgs e)
        {
            FileUpload fu = (FileUpload)FormView1.FindControl("FileUpload1");
            if (fu.HasFile)
            {
                // u code here
            }
            else
            {
                Label1.Text = "请选择上传文件!";
            }
        }

    2013年1月11日 5:48
  • 还是不可以~

    2013年1月11日 7:03
  • 放在FormView_DataBound事件里面试试:

        protected void FormView1_DataBound(object sender, EventArgs e)
        {
            FileUpload fu = (FileUpload)FormView1.FindControl("FileUpload1");
            if (fu.HasFile)
            {
                // u code here
            }
            else
            {
                Label1.Text = "请选择上传文件!";
            }
        }


    还是不可以~ 为什么只有这控件不行呀?  其他的比如textbox RadioButton 连外部控件都可以~~??
    2013年1月11日 7:06
  • 如果你是把这个控件放入EditTemplate模板中,不能直接放入DataBind事件,尝试放入这个ItemUpdating事件中。

    如果仍然尚未解决问题,请直接黏贴你的aspx代码,谢谢!


    帮助一起改进论坛质量?提交你的意见于此。
    我的博客园
    慈善点击,点击此处
    和谐拯救危机,全集下载,净化人心

    2013年1月12日 6:04
  • Aspx里面的页面贴出来看看?
    2013年1月14日 1:51
  • <%@ Page Language="C#" AutoEventWireup="true" CodeFile="EditCommodity.aspx.cs" Inherits="admin_EditCommodity" %>
    <%@ Register Assembly="CKEditor.NET" Namespace="CKEditor.NET" TagPrefix="CKEditor" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
        <link href="CSS/TwoStyle.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
        <form id="form1" runat="server">
        <asp:SqlDataSource ID="DSCommodity" runat="server" 
            ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
            SelectCommand="SELECT [C_Name], [Description], [Price], [Classification], [Specification], [Picture], [C_Attribution], [B_Image] FROM [RS_Commodity] WHERE ([CommodityID] = @CommodityID)">
            <SelectParameters>
                <asp:QueryStringParameter Name="CommodityID" QueryStringField="id" 
                    Type="String" />
            </SelectParameters>
        </asp:SqlDataSource>
         <br />
        <asp:FormView ID="FormView1" runat="server" Width="100%" 
            DataSourceID="DSCommodity" EnableViewState="False">
            <EditItemTemplate>
                C_Name:
                <asp:TextBox ID="C_NameTextBox" runat="server" Text='<%# Bind("C_Name") %>' />
                <br />
                Description:
                <asp:TextBox ID="DescriptionTextBox" runat="server" 
                    Text='<%# Bind("Description") %>' />
                <br />
                Price:
                <asp:TextBox ID="PriceTextBox" runat="server" Text='<%# Bind("Price") %>' />
                <br />
                Classification:
                <asp:TextBox ID="ClassificationTextBox" runat="server" 
                    Text='<%# Bind("Classification") %>' />
                <br />
                Specification:
                <asp:TextBox ID="SpecificationTextBox" runat="server" 
                    Text='<%# Bind("Specification") %>' />
                <br />
                Picture:
                <asp:TextBox ID="PictureTextBox" runat="server" Text='<%# Bind("Picture") %>' />
                <br />
                C_Attribution:
                <asp:TextBox ID="C_AttributionTextBox" runat="server" 
                    Text='<%# Bind("C_Attribution") %>' />
                <br />
                B_Image:
                <asp:TextBox ID="B_ImageTextBox" runat="server" Text='<%# Bind("B_Image") %>' />
                <br />
                <asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" 
                    CommandName="Update" Text="更新" />
                &nbsp;<asp:LinkButton ID="UpdateCancelButton" runat="server" 
                    CausesValidation="False" CommandName="Cancel" Text="取消" />
            </EditItemTemplate>
            <InsertItemTemplate>
                C_Name:
                <asp:TextBox ID="C_NameTextBox" runat="server" Text='<%# Bind("C_Name") %>' />
                <br />
                Description:
                <asp:TextBox ID="DescriptionTextBox" runat="server" 
                    Text='<%# Bind("Description") %>' />
                <br />
                Price:
                <asp:TextBox ID="PriceTextBox" runat="server" Text='<%# Bind("Price") %>' />
                <br />
                Classification:
                <asp:TextBox ID="ClassificationTextBox" runat="server" 
                    Text='<%# Bind("Classification") %>' />
                <br />
                Specification:
                <asp:TextBox ID="SpecificationTextBox" runat="server" 
                    Text='<%# Bind("Specification") %>' />
                <br />
                Picture:
                <asp:TextBox ID="PictureTextBox" runat="server" Text='<%# Bind("Picture") %>' />
                <br />
                C_Attribution:
                <asp:TextBox ID="C_AttributionTextBox" runat="server" 
                    Text='<%# Bind("C_Attribution") %>' />
                <br />
                B_Image:
                <asp:TextBox ID="B_ImageTextBox" runat="server" Text='<%# Bind("B_Image") %>' />
                <br />
                <asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True" 
                    CommandName="Insert" Text="插入" />
                &nbsp;<asp:LinkButton ID="InsertCancelButton" runat="server" 
                    CausesValidation="False" CommandName="Cancel" Text="取消" />
            </InsertItemTemplate>
            <ItemTemplate>
        <table width="100%" border="0" cellspacing="1" cellpadding="0">
      <tr>
        <td class="tdOne">图片预览:</td>
        <td class="tdTwo">商品归属:</td>
        <td><asp:RadioButton ID="rbRe_S" runat="server" Checked="True" Text="公司1" GroupName="LB" />      
    &nbsp;&nbsp;&nbsp;      
    <asp:RadioButton ID="rbRS" runat="server" Text="公司2" GroupName="LB" /></td>
      </tr>
      <tr>
        <td rowspan="6" class="tdImages">
              <div class="divBImage"><asp:Image ID="BImage" Width="100%" Height="100%" runat="server" ImageUrl='<%# Bind("B_Image") %>'/></div>
              <div class="divPicture"><asp:Image ID="Picture" Width="100%" Height="100%" runat="server" ImageUrl='<%# Bind("Picture") %>'/></div>
          </td>
        <td>商品名称:</td>
        <td><asp:TextBox ID="tbCName" runat="server" Text='<%# Bind("C_Name") %>'></asp:TextBox></td>
      </tr>
      <tr>
        <td>规格:</td>
        <td><asp:TextBox ID="tbSpecification" runat="server" Text='<%# Bind("Specification") %>'></asp:TextBox></td>
      </tr>
      <tr>
        <td>类别:</td>
        <td><asp:DropDownList ID="DropDownList1" runat="server" > </asp:DropDownList></td>
      </tr>
      <tr>
        <td>单价:</td>
        <td><asp:TextBox ID="tbPrice" runat="server" Text='<%# Bind("Price") %>'></asp:TextBox></td>
      </tr>
      <tr>
        <td>商品图片:</td>
        <td><asp:FileUpload ID="fuPicture" runat="server" />
            <asp:Label ID="lbPicture" runat="server" Text="Label" Visible="False"></asp:Label>
          </td>
      </tr>
      <tr>
        <td>背景图:</td>
        <td>
            <asp:FileUpload ID="fuBImage" runat="server" />
            <asp:Label ID="lbBImage" runat="server" Text="Label" Visible="False"></asp:Label>
          </td>
      </tr>
      <tr>
        <td colspan="3">商品描述:</td>
        </tr>
        <tr>
         <td colspan="3">
           <div>
    		  <CKEditor:CKEditorControl ID="CKEditor1" runat="server" Height="100" Text='<%# Bind("Description") %>'></CKEditor:CKEditorControl>
    	   </div>
         </td>
        </tr>
        <tr>   
          <td colspan="3" align="center"><asp:Button ID="Button1" runat="server" Text="提交" 
                  onclick="Button1_Click" />
            </td>
        </tr>
    </table>
            </ItemTemplate>
        </asp:FormView>
        </form>
        </body>
    </html>

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Text.RegularExpressions;
    using CKEditor.NET;
    public partial class admin_EditCommodity : System.Web.UI.Page
    {
        string cID;
        protected void Page_Load(object sender, EventArgs e)
        {
            cID = Request.QueryString["id"];
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            TextBox tbCName = (TextBox)FormView1.FindControl("tbCName");
            TextBox tbSpecification = (TextBox)FormView1.FindControl("tbSpecification");
            DropDownList DropDownList1 = (DropDownList)FormView1.FindControl("DropDownList1");
            TextBox tbPrice = (TextBox)FormView1.FindControl("tbPrice");
            FileUpload fuPicture = (FileUpload)FormView1.FindControl("fuPicture");
            FileUpload fuBImage = (FileUpload)FormView1.FindControl("fuBImage");
            CKEditorControl CKEditor1 = (CKEditorControl)FormView1.FindControl("CKEditor1");
            RadioButton rbRS = (RadioButton)FormView1.FindControl("rbRS");
            //上传图片
            bool files = false;
            if (this.fuPicture.HasFile && this.fuBImage.HasFile)
            {
                //判断图片格式
                string prompt = "";
                string FileSuffixO = System.IO.Path.GetExtension(this.fuPicture.FileName).ToLower();
                string FileSuffixB = System.IO.Path.GetExtension(this.fuBImage.FileName).ToLower();
                string[] suffix = { ".jpg", "bmp", "gif", "png" };
                for (int i = 0; i < FileSuffixO.Length; i++)
                {
                    if (FileSuffixO == suffix[i])
                        files = true;
                    else
                        prompt = prompt + "商品图片格式仅支持jpg、bmp、gif、png!";
                }
                for (int i = 0; i < FileSuffixB.Length; i++)
                {
                    if (FileSuffixB == suffix[i])
                        files = true;
                    else
                        prompt = "背景图片格式仅支持jpg、bmp、gif、png!";
                }
                if (files == true)
                {
                    string imagesName, picFile, bImaFile, CBAName;
                    string nowDate = DateTime.Now.ToString();
                    //删除特殊字符
                    imagesName = Regex.Replace(Regex.Replace(nowDate, @"[^[\w]", ""), "(?s)([-])(?=.*\\1)", "");
                    //保存图片并以时间为名字
                    picFile = Server.MapPath("~/App_Data/Images/commodity/") + imagesName + ".png";
                    bImaFile = Server.MapPath("~/App_Data/Images/") + imagesName + ".png";
                    this.fuPicture.SaveAs(picFile);
                    this.fuBImage.SaveAs(bImaFile);
                    if (rbRS.Checked == true)
                    {
                        CBAName = "公司1";
                    }
                    else
                    {
                        CBAName = "公司2";
                    }
                    string cName = tbCName.Text;
                    string cDescription = CKEditor1.Text;
                    int cPrice = Convert.ToInt32(tbPrice.Text);
                    int Classification = DropDownList1.SelectedIndex;
                    string tbS = tbSpecification.Text;
                    DBLink.UpdateCommodity(cID, cName, cDescription, cPrice, Classification, tbS, CBAName);
                    Response.Write("<script>alert('更新成功!');</script>");
                }
                else
                {
                    Response.Write("<script>alert('上传失败!" + prompt + "');</script>");
                }
            }
            else
            {
                Response.Write("<script>alert('请选择图片上传');</script>");
            }
        }
    }


    2013年1月14日 6:24
  • 你好,你给出代码中貌似没有“FileUpload1”的ID的文件上传控件啊。请核实,谢谢!

    帮助一起改进论坛质量?提交你的意见于此。
    我的博客园
    慈善点击,点击此处
    和谐拯救危机,全集下载,净化人心

    2013年1月14日 8:08
  • 你好,你给出代码中貌似没有“FileUpload1”的ID的文件上传控件啊。请核实,谢谢!


    有~ ID是fuPicture 和fuBImage 两个fileUpload控件 代码比较长请耐心仔细查看 谢谢~
    2013年1月14日 9:25
  • @这两种方法都用了还是不行 formview控件里面确实有fileupload控件 但是提示编译器错误消息: CS1061: “admin_EditCommodity”不包含“fuPicture ”的定义,并且找不到可接受类型为“admin_EditCommodity”的第一个参数的扩展方法“fuPicture ”(是否缺少 using 指令或程序集引用?)

    请调试你的程序,并指出具体在哪句话上抛异常?


    帮助一起改进论坛质量?提交你的意见于此。
    我的博客园
    慈善点击,点击此处
    和谐拯救危机,全集下载,净化人心

    2013年1月14日 10:05
  • @这两种方法都用了还是不行 formview控件里面确实有fileupload控件 但是提示编译器错误消息: CS1061: “admin_EditCommodity”不包含“fuPicture ”的定义,并且找不到可接受类型为“admin_EditCommodity”的第一个参数的扩展方法“fuPicture ”(是否缺少 using 指令或程序集引用?)

    请调试你的程序,并指出具体在哪句话上抛异常?



            //上传图片
            bool files = false;
            if (this.fuPicture.HasFile && this.fuBImage.HasFile)
            {
                //判断图片格式
                string prompt = "";
    。。。。。

    报错的地方我已经加了下划线了~更具体的是在第30行 fuPicture 和fuBImage

    (前面我都用

    FileUpload fuPicture = FormView1.FindControl("fuPicture") as FileUpload;

    FileUpload fuPicture = (FileUpload)FormView1.FindControl("fuPicture ");

    这两种方法去获取他们,但是都没有用,在前台页面中 formview1里有fuPicture 和fuBImage这两个fileUpload控件,就这货获取不到,其他的Textbox控件都可以获取到,这是怎么回事?)


    2013年1月15日 1:47
  • 上传你的代码到SkyDrive(数据不一定需要数据库,可以直接用DataTable进行模拟)。用zip打包。

    帮助一起改进论坛质量?提交你的意见于此。
    我的博客园
    慈善点击,点击此处
    和谐拯救危机,全集下载,净化人心

    2013年1月16日 5:08