新人问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 为空