日期:2014-05-18  浏览次数:20547 次

新人问3个问题
问题一:在gridview里我放了一个checkbox,想每行都显示出来,但是现在就一行显示出来checkbox,其他行没有显示。

问题二:如何实现只选择其中的几行数据(即选择几个checkbox),然后删除。(全选,然后删除已经实现。)

问题三:我参照孟老大的上传图片代码,如下:
 Stream fileDataStream = this.FileUpload1.PostedFile.InputStream;
 int fileLength = this.FileUpload1.PostedFile.ContentLength;
 byte[] fileData = new byte[fileLength];
 fileDataStream.Read(fileData,0,fileLength);
 MemoryStream ms = new MemoryStream(fileData);
 content.Picture = System.Drawing.Image.FromStream(ms);
但是,在这句时报错 Stream fileDataStream = this.FileUpload1.PostedFile.InputStream; “未将对象引用设置到对象的实例

刚接触,虚心请教,谢谢。


------解决方案--------------------
问题一、右键 编辑列 添加TemplateField模板列
HTML代码:
<asp:TemplateField HeaderText="选择">
<ItemStyle HorizontalAlign="Center" />
<HeaderStyle HorizontalAlign="Center" />
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" Style="position: relative" />
</ItemTemplate>
</asp:TemplateField>

问题二、你既然都解决了全选删除,那挑选删除也是一样的道理吖
C#:
#region//批量删除
protected void alldelbtn_Click(object sender, EventArgs e)
{
conString();
CheckBox chk;
foreach (GridViewRow gvr in GridView1.Rows)
{
chk = (CheckBox)gvr.FindControl("CheckBox1");
if (chk.Checked)
{
int id = Convert.ToInt32(GridView1.DataKeys[gvr.RowIndex].Value.ToString());
com = new SqlCommand("update authors set delstate=1 where au_id='" + id + "'", con);
try
{
con.Open();
com.ExecuteNonQuery();
lblmessage.Text = "批量删除成功!";
con.Close();
}
catch (Exception ex)
{ lblmessage.Text = "无法批量删除!"; }
}
}
PBind();//自己写的页面加载时绑定方法
}
#endregion


------解决方案--------------------
1:手写gridview
2:循环然后判断
3:仔细查看代码

不难得,慢慢来
------解决方案--------------------
问题3设断点跟踪一下
Stream fileDataStream = this.FileUpload1.PostedFile.InputStream; 
应该是this.FileUpload1.PostedFile为null引发异常
------解决方案--------------------
this.FileUpload1.PostedFile.InputStream 为空