如何在Gridview列中动态添加图像 [英] How Do I Dynamically Add An Image In Gridview Column

查看:58
本文介绍了如何在Gridview列中动态添加图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,



我在gridview中遇到问题..



i我的三列grid.date,name和image。

我必须输入/选择动态...因为日期我使用日历扩展器(文本框)作为名称(文本框)图像(ImageField).once如果我输入日期和文本框中的名称,我试图使用文件上传文件上传图像正在清除..如果我保存并添加我上传的新行图像正在清除..这里我将图像保存在一个文件夹中..如果我运行我的应用我之前选择的所有图像也得到了帮助我请如何用善良的心解决我的问题...我是一个新鲜的不介意,如果它很容易一个..帮助我..我也发布我的代码..



提前致谢..





源代码: :



Hello everyone,

Am facing problem in gridview..

i have three columns in my grid.date,name and image.
I have to enter/select dynamically..so for date i have used calendar extender(Textbox) for name(Textbox) Image(ImageField).once if i enter date and name in textbox and am trying to upload an image using file upload the text is clearing..if i save and add new row images i have uploaded is clearing..and here iam saving images in one folder..if i run my application all images that i have selected before also am getting help me please how to solve my problem with kind heart...am a fresher don't mind if it is easy one..do help for me..am posting my code too..

Thanks in advance..


Source Code::

<asp:GridView ID="Gridview1" runat="server" ShowFooter="True"

            AutoGenerateColumns="False"

          >
        <Columns>
        <asp:TemplateField HeaderText="Date">
            <ItemTemplate>
                <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                 <asp:CalendarExtender ID="CalendarExtender1" runat="server" TargetControlID="TextBox1" Format="dd/MM/yyyy">
                </asp:CalendarExtender>
            </ItemTemplate>
        </asp:TemplateField>

                        <asp:ImageField DataImageUrlField="Value" ControlStyle-Height="50" ControlStyle-Width="50"

                    HeaderText="Image">
                    <ControlStyle Height="50px" Width="50px"></ControlStyle>
                </asp:ImageField>



        <asp:TemplateField HeaderText="Name">
            <ItemTemplate>
                <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
            </ItemTemplate>
             <FooterStyle HorizontalAlign="Right" />
            <FooterTemplate>
             <asp:Button ID="ButtonAdd" runat="server" Text="Add New Row" OnClick="ButtonAdd_Click" />

            </FooterTemplate>
        </asp:TemplateField>
        </Columns>
        </asp:GridView>
        <asp:FileUpload ID="FileUpload1" runat="server" />
        <asp:Button ID="btnUpload" runat="server" Text="Display" OnClick="Upload" />









代码::







DataTa ble dt = new DataTable();



protected void Page_Load(object sender,EventArgs e)

{



if(!IsPostBack)

{

SetInitialRow();

filup();





}







}

private void SetInitialRow()

{

DataRow dr = null;

dt。 Columns.Add(new DataColumn(Column1,typeof(string)));

dt.Columns.Add(new DataColumn(Column2,typeof(string)));

dt.Columns.Add(Value);

dr = dt.NewRow();

dr [Column1] = string.Empty;

dr [Column2] = string.Empty;

dt.Rows.Add(dr);

ViewState [CurrentTable] = dt;



Gridview1.DataSource = dt;

Gridview1.DataBind();



}

private void AddNewRowToGrid()

{

int rowIndex = 0;

if(ViewState [CurrentTable]!= null)

{

DataTable dtCurrentTable =(DataTable)ViewState [CurrentTable];

DataRow drCurrentRow = null;

if (dtCurrentTable.Rows.Count> 0)

{

for(int i = 1; i< = dtCurrentTable.Rows.Count; i ++)

{

TextBox box1 =(TextBox)Gridview1.Rows [rowIndex] .Cells [0] .FindControl(TextBox1);

TextBox box2 =(TextBox)Gridview1.Rows [rowIndex] .Cells [1] .FindControl(TextBox2);

Image img =(Image)Gridview1.Rows [rowIndex] .Cells [2] .FindControl(Value);

drCurrentRow = dtCurrentTable.NewRow();



dtCurrentTable.Rows [i - 1] [Column1] = box1.Text;

dtCurrentTable.Rows [i - 1] [Column2] = box2.Text;

dtCurrentTable.Rows [i - 1] [Value] = ViewState [path] ;



rowIndex ++;

}

dtCurrentTable.Rows.Add(drCu rrentRow);

ViewState [CurrentTable] = dtCurrentTable;



Gridview1.DataSource = dtCurrentTable;

Gridview1.DataBind();

}

}



SetPreviousData();

}

private void SetPreviousData()

{

int rowIndex = 0;

if(ViewState [ CurrentTable]!= null)

{

DataTable dt =(DataTable)ViewState [CurrentTable];

if(dt。 Rows.Count> 0)

{

for(int i = 0; i< dt.Rows.Count; i ++)

{

TextBox box1 =(TextBox)Gridview1.Rows [rowIndex] .Cells [0] .FindControl(TextBox1);

TextBox box2 =(TextBox)Gridview1.Rows [rowIndex]。 Cells [1] .FindControl(TextBox2);

Image img =(Image)Gridview1.Rows [rowIndex] .Cells [2] .FindControl(Value);

box1.Text = dt.Rows [i] [Column1]。ToString();

box2.Text = dt.Rows [i] [Column2]。ToString() ;

rowIndex ++;

}



}

}



}

protected void ButtonAdd_Click(object sender,EventArgs e)

{

AddNewRowToGrid( );



}

protected void filup()

{

string [] filePaths =目录。 GetFiles(Server.MapPath(〜/ Img1 /));

List< listitem> files = new List< listitem>();

foreach(filePaths中的字符串filePath)

{

string fileName = Path.GetFileName(filePath );

files.Add(new ListItem(fileName,〜/ Img1 /+ fileName));

}



if(files.Count == 1)

{

Gridview1.DataSource = files;

Gridview1.DataBind() ;

}

}



protected void上传(对象发件人,EventArgs e)

{





if(FileUpload1.HasFile)

{

string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName);

FileUpload1.PostedFile.SaveAs(Server.MapPath(〜/ Img1 /)+ fileName);

Response.Redirect(Request.Url.AbsoluteUri);



ViewState [path] = fileName;





}

}





Code::



DataTable dt = new DataTable();

protected void Page_Load(object sender, EventArgs e)
{

if (!IsPostBack)
{
SetInitialRow();
filup();


}



}
private void SetInitialRow()
{
DataRow dr = null;
dt.Columns.Add(new DataColumn("Column1", typeof(string)));
dt.Columns.Add(new DataColumn("Column2", typeof(string)));
dt.Columns.Add("Value");
dr = dt.NewRow();
dr["Column1"] = string.Empty;
dr["Column2"] = string.Empty;
dt.Rows.Add(dr);
ViewState["CurrentTable"] = dt;

Gridview1.DataSource = dt;
Gridview1.DataBind();

}
private void AddNewRowToGrid()
{
int rowIndex =0;
if (ViewState["CurrentTable"] != null)
{
DataTable dtCurrentTable = (DataTable)ViewState["CurrentTable"];
DataRow drCurrentRow = null;
if (dtCurrentTable.Rows.Count > 0)
{
for (int i = 1; i <= dtCurrentTable.Rows.Count; i++)
{
TextBox box1 = (TextBox)Gridview1.Rows[rowIndex].Cells[0].FindControl("TextBox1");
TextBox box2 = (TextBox)Gridview1.Rows[rowIndex].Cells[1].FindControl("TextBox2");
Image img = (Image)Gridview1.Rows[rowIndex].Cells[2].FindControl("Value");
drCurrentRow = dtCurrentTable.NewRow();

dtCurrentTable.Rows[i - 1]["Column1"] = box1.Text;
dtCurrentTable.Rows[i - 1]["Column2"] = box2.Text;
dtCurrentTable.Rows[i - 1]["Value"] = ViewState["path"];

rowIndex++;
}
dtCurrentTable.Rows.Add(drCurrentRow);
ViewState["CurrentTable"] = dtCurrentTable;

Gridview1.DataSource = dtCurrentTable;
Gridview1.DataBind();
}
}

SetPreviousData();
}
private void SetPreviousData()
{
int rowIndex = 0;
if (ViewState["CurrentTable"] != null)
{
DataTable dt = (DataTable)ViewState["CurrentTable"];
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
TextBox box1 = (TextBox)Gridview1.Rows[rowIndex].Cells[0].FindControl("TextBox1");
TextBox box2 = (TextBox)Gridview1.Rows[rowIndex].Cells[1].FindControl("TextBox2");
Image img = (Image)Gridview1.Rows[rowIndex].Cells[2].FindControl("Value");
box1.Text = dt.Rows[i]["Column1"].ToString();
box2.Text = dt.Rows[i]["Column2"].ToString();
rowIndex++;
}

}
}

}
protected void ButtonAdd_Click(object sender, EventArgs e)
{
AddNewRowToGrid();

}
protected void filup()
{
string[] filePaths = Directory.GetFiles(Server.MapPath("~/Img1/"));
List<listitem> files = new List<listitem>();
foreach (string filePath in filePaths)
{
string fileName = Path.GetFileName(filePath);
files.Add(new ListItem(fileName, "~/Img1/" + fileName));
}

if (files.Count == 1)
{
Gridview1.DataSource = files;
Gridview1.DataBind();
}
}

protected void Upload(object sender, EventArgs e)
{


if (FileUpload1.HasFile)
{
string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
FileUpload1.PostedFile.SaveAs(Server.MapPath("~/Img1/") + fileName);
Response.Redirect(Request.Url.AbsoluteUri);

ViewState["path"] = fileName;


}
}

推荐答案

图片img =(图片)Gridview1.Rows [rowIndex]。 Cells [2] .FindControl(Value);

img.imageurl =数据库图像路径的设定值。
Image img = (Image)Gridview1.Rows[rowIndex].Cells[2].FindControl("Value");
img.imageurl=set value of database image path.


这篇关于如何在Gridview列中动态添加图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆