Gridview内响应RowEditing事件,控件Visible属性为false,还是显示?

yxz_lp 2019-05-06 05:48:20
小白求助!!!

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
GridView1.DataBind();
var fileUpload =
(FileUpload)GridView1.Rows[e.NewEditIndex].Cells[6].Controls[0].FindControl("UpLoadry");
var scbutton = (Button)GridView1.Rows[e.NewEditIndex].Cells[6].Controls[0].FindControl("buttonscry");
var linkButton = (LinkButton)GridView1.Rows[e.NewEditIndex].Cells[6].Controls[0].FindControl("Lbxzry");
if (havedata(GridView1,"身份证"))
{
fileUpload.Visible = false;

scbutton.Text = "删除";
}
else
{

linkButton.Visible = false;
}

}
...全文
196 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yxz_lp 2019-05-11
  • 打赏
  • 举报
回复
问题已解决,疑惑也解开了,由于我另一个aspx的grid view并未绑定SqldataSource,而是手动填充,RowEditing事件后并未引发Databound事件所以修改控件状态可以成功,而绑定了数据源的Grid View会引发DataBound事件,所以把代码放在DataBound事件里处理就好了。

 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                
               
                //格式化附件文件名
                LinkButton lbButton = (LinkButton) e.Row.Cells[4].Controls[0].FindControl("imaglink");
                if (lbButton != null)
                {
                    if (!lbButton.Text.ToString().IsNullOrWhiteSpace())
                    {

                        lbButton.Text = lbButton.Text.ToString().Substring(36);
                    }

                }

                if (e.Row.RowState==(DataControlRowState.Edit| DataControlRowState.Alternate)||e.Row.RowState==DataControlRowState.Edit)
                {
                    var fileUpload =
                        (FileUpload)e.Row.Cells[4].Controls[0].FindControl("UpLoad");
                    var scbutton = (Button)e.Row.Cells[4].Controls[0].FindControl("buttonsc");
                    var linkButton = (LinkButton)e.Row.Cells[4].Controls[0].FindControl("Lbxz");
                    if (GetColumValue(tablename, "ID", 4, e.Row.RowIndex) != "")
                    {
                        fileUpload.Visible = false;
                        scbutton.Text = "删除";
                    }
                    else
                    {
                        linkButton.Visible = false;
                    }
                }



            }
yxz_lp 2019-05-07
  • 打赏
  • 举报
回复
引用 4 楼 ManBOyyy 的回复:
第一個問題:你可以用斷點所有這個fileUpload,來調試一下 [quote=引用 3 楼 yxz_lp 的回复:] 肯定都调试过了,在跟踪点内控件Visible属性都变成了false,而且更奇怪的是同一个工程,其他的aspx这段代码都起作用,唯独这个aspx不行,代码和调试跟踪也比对了控件属性也没什么异样,还用这个aspx导出excle用utf-8导出中文乱码,改成GB2312又正常了,其他aspx用utf-8导出正常,2个aspx的代码比对好几遍了,包括gridview的属性没什么异样,头疼。
這個就是內容的問題啊,你最好先轉為什麼編碼再用什麼編碼 比如這台電腦是GB2312編碼哪個電腦是utf-8編碼不一樣的[/quote] 都断点把fileupload看了个透了,确实修改了visible属性为false,还顺带比对了其他属性,至于我说编码问题,只是说感到怪怪的,同一工程同一电脑就这个aspx特立独行,知道这个aspx哪里打开方式不对,但就是找不出哪里不对,你说气不气人
ManBOyyy 2019-05-07
  • 打赏
  • 举报
回复
第一個問題:你可以用斷點所有這個fileUpload,來調試一下

引用 3 楼 yxz_lp 的回复:
肯定都调试过了,在跟踪点内控件Visible属性都变成了false,而且更奇怪的是同一个工程,其他的aspx这段代码都起作用,唯独这个aspx不行,代码和调试跟踪也比对了控件属性也没什么异样,还用这个aspx导出excle用utf-8导出中文乱码,改成GB2312又正常了,其他aspx用utf-8导出正常,2个aspx的代码比对好几遍了,包括gridview的属性没什么异样,头疼。

這個就是內容的問題啊,你最好先轉為什麼編碼再用什麼編碼 比如這台電腦是GB2312編碼哪個電腦是utf-8編碼不一樣的
yxz_lp 2019-05-07
  • 打赏
  • 举报
回复
肯定都调试过了,在跟踪点内控件Visible属性都变成了false,而且更奇怪的是同一个工程,其他的aspx这段代码都起作用,唯独这个aspx不行,代码和调试跟踪也比对了控件属性也没什么异样,还用这个aspx导出excle用utf-8导出中文乱码,改成GB2312又正常了,其他aspx用utf-8导出正常,2个aspx的代码比对好几遍了,包括gridview的属性没什么异样,头疼。
OrdinaryCoder 2019-05-07
  • 打赏
  • 举报
回复
加个断点调一下 看看进没进到if判断中
shoppo0505 2019-05-07
  • 打赏
  • 举报
回复
visiable?还是hidden?

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧