首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

gridview 有关问题,解决不了,求大家帮忙.

2012-08-07 
gridview 问题,解决不了,求大家帮忙...前台C# code%@ Page LanguageC# AutoEventWireuptrue CodeFi

gridview 问题,解决不了,求大家帮忙...
前台

C# code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><!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>    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script></head><body>    <form id="form1" runat="server">    <div>        <asp:ScriptManager ID="ScriptManager1" runat="server">        </asp:ScriptManager>        <%--        <asp:UpdatePanel ID="UpdatePanel1" runat="server">            <ContentTemplate>--%>        <asp:GridView ID="gdvData" runat="server" AutoGenerateColumns="false" OnRowEditing="gdvData_RowEditing"            OnRowUpdating="gdvData_RowUpdating">            <Columns>                <asp:TemplateField HeaderText="图片">                    <ItemTemplate>                        xxx</ItemTemplate>                    <EditItemTemplate>                        <asp:FileUpload ID="FileUpload1" runat="server"></asp:FileUpload></EditItemTemplate>                </asp:TemplateField>                <asp:CommandField ShowEditButton="true" />            </Columns>        </asp:GridView>        <%--            </ContentTemplate>        </asp:UpdatePanel>--%>        图片:<input type="file" runat="server" id="InputFile" style="width: 132px;" /><br />        <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />    </div>    </form></body></html>

 后台

C# code
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;public partial class _Default : System.Web.UI.Page{    private static List<string> files = new List<string> { "a", "b" };    protected void Page_Load(object sender, EventArgs e)    {        if (!this.IsPostBack)        {            BinData();        }    }    private void BinData()    {        gdvData.DataSource = files;        gdvData.DataBind();    }    protected void gdvData_RowEditing(object sender, GridViewEditEventArgs e)    {        gdvData.EditIndex = e.NewEditIndex;        BinData();    }    protected void gdvData_RowUpdating(object sender, GridViewUpdateEventArgs e)    {        Response.Write((gdvData.Rows[e.RowIndex].FindControl("FileUpload1") as FileUpload).FileName + "<br/>");        string upFile = ((FileUpload)gdvData.Rows[e.RowIndex].FindControl("FileUpload1")).PostedFile.FileName;        UpLoad(upFile);    }    protected void Button1_Click(object sender, EventArgs e)    {        UpLoad(InputFile.Value);    }    private string UpLoad(string img)    {        string pictureName = "";        int idx = img.LastIndexOf('.');        string suffx = img.Substring(idx);        pictureName = DateTime.Now.Ticks.ToString() + suffx;        if (img != "")        {            string path = Server.MapPath("Upload/Image/");            InputFile.PostedFile.SaveAs(path + pictureName);        }        return pictureName;    }} 



我有两个问题,
第一个:
如果在gridview外层 添加个 UpdatePanel无刷新控件 ,那么在后台获取FileUpload1就会报错,这是为什么?
第二个:
在gridview外放个上传控件,然后上传图片,OK没问题,但是在gridview里的那个上传控件 ,我如果上传图片,那么图片就是0KB,打开 提示“没有预览” 这又是为什么?
求解释?求解决?

[解决办法]
你怎么测试的不可以啊?
你可以直接拷贝下面的代码测试,不要做任何修改

HTML code
<%@ Page Language="C#" EnableViewState="true" %><%@ Import Namespace="System.Xml" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">  private static List<string> files = new List<string> { "a", "b" };  protected void Page_Load(object sender, EventArgs e)  {    if (!this.IsPostBack)    {      BinData();    }  }  private void BinData()  {    gdvData.DataSource = files;    gdvData.DataBind();  }  protected void gdvData_RowEditing(object sender, GridViewEditEventArgs e)  {    gdvData.EditIndex = e.NewEditIndex;    BinData();  }  protected void gdvData_RowUpdating(object sender, GridViewUpdateEventArgs e)  {    FileUpload upFile = gdvData.Rows[e.RowIndex].FindControl("FileUpload1") as FileUpload;    Image Image1 = gdvData.Rows[e.RowIndex].FindControl("Image1") as Image;    if (upFile != null)    {      Image1.Visible = true;      Image1.ImageUrl = "~/" + UpLoad(upFile);    }    else    {      Response.Write("Error");     }  }  private string UpLoad(FileUpload img)  {    string pictureName = "";    pictureName = DateTime.Now.Ticks.ToString() + System.IO.Path.GetFileName(img.FileName);    string path = Server.MapPath("~/" + pictureName);    img.SaveAs(path);    return pictureName;  }</script><html><head>  <title></title></head><body>  <form id="form1" runat="server">  <asp:GridView ID="gdvData" runat="server" AutoGenerateColumns="false" OnRowEditing="gdvData_RowEditing"    OnRowUpdating="gdvData_RowUpdating">    <Columns>      <asp:TemplateField HeaderText="图片">        <ItemTemplate>          xxx</ItemTemplate>        <EditItemTemplate>          <asp:Image ID="Image1" runat="server" Visible="false" Width="100" />          <asp:FileUpload ID="FileUpload1" runat="server"></asp:FileUpload></EditItemTemplate>      </asp:TemplateField>      <asp:CommandField ShowEditButton="true" />    </Columns>  </asp:GridView>  </form></body></html> 

热点排行