由于字段多 但是我的其他字段 如果 隐藏 就取值不了 。 请问用什么方法 把不显示的字段隐藏 又可以修改保存原来的数据
protected void gvFiles_RowUpdating(object sender, GridViewUpdateEventArgs e)
{ Tb_file sad=new Tb_file ();
string id = ((TextBox)gvFiles.Rows[e.RowIndex].Cells[0].Controls[0]).Text.ToString().Trim();
string name = ((TextBox)gvFiles.Rows[e.RowIndex].Cells[1].Controls[0]).Text.ToString().Trim();
string sex = ((TextBox)gvFiles.Rows[e.RowIndex].Cells[2].Controls[0]).Text.ToString().Trim();
string age = ((TextBox)gvFiles.Rows[e.RowIndex].Cells[3].Controls[0]).Text.ToString().Trim();
string department = ((TextBox)gvFiles.Rows[e.RowIndex].Cells[4].Controls[0]).Text.ToString().Trim();
string grade = ((TextBox)gvFiles.Rows[e.RowIndex].Cells[5].Controls[0]).Text.ToString().Trim();
string xingm = ((TextBox)gvFiles.Rows[e.RowIndex].Cells[6].Controls[0]).Text.ToString().Trim();
DropDownList dropShowType = (DropDownList)gvFiles.Rows[Convert.ToInt32(e.RowIndex)].Cells[7].FindControl("DropDownList1");
string zhaungt = dropShowType.SelectedValue;
//string zhaungt = ((DropDownList)gvFiles.Rows[e.RowIndex].Cells[7].Controls[0]).SelectedItem.Text.ToString().Trim();
string zhenshi = ((TextBox)gvFiles.Rows[e.RowIndex].Cells[8].Controls[0]).Text.ToString().Trim();
sad.FileID = int.Parse(id.ToString());
sad.FileName = name.ToString();//文件名称
sad.Areaname = sex;
sad.Cityname = age;
sad.Provincename = department;
sad.Uptime = grade;
sad.Unitname = xingm;
sad.Verifying = zhaungt;
sad.FileTrueName = zhenshi.ToString();//真实文件名称
int i = Tb_fileManager.Instance.ModifyTb_file(sad); //x修改方法
21 个解决方案
#1
我觉得 是不是可以 获取 那个列的值 就好了
#2
你要修改哪个列 在GridView的那个方法里面就获取这个列的值和ID值修改就好了嘛。。。
#3
前台
<asp:GridView ID="GridView1" runat="server">
<asp:TemplateField HeaderText="操作">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" Text="修改你的那个字段" CommandName="set_top" CommandArgument='<%#Eval("id") %>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</asp:GridView>
后台
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
Int32 id = Convert.ToInt32(e.CommandArgument);
if (e.CommandName == "set_top")
{
string sql = "update news set istop=1 where id=" + id;//写修改字段的sql语句
}
try
{
DataBase.Runsql(sql);//执行修改sql语句
}
catch
{
PageAbout.ShowMsg("操作失败!");
}
}
这样就OK了,还看不懂的话加QQ694903456
<asp:GridView ID="GridView1" runat="server">
<asp:TemplateField HeaderText="操作">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" Text="修改你的那个字段" CommandName="set_top" CommandArgument='<%#Eval("id") %>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</asp:GridView>
后台
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
Int32 id = Convert.ToInt32(e.CommandArgument);
if (e.CommandName == "set_top")
{
string sql = "update news set istop=1 where id=" + id;//写修改字段的sql语句
}
try
{
DataBase.Runsql(sql);//执行修改sql语句
}
catch
{
PageAbout.ShowMsg("操作失败!");
}
}
这样就OK了,还看不懂的话加QQ694903456
#4
前台GridView1里面还得加上这个
OnRowCommand="GridView1_RowCommand"
OnRowCommand="GridView1_RowCommand"
#5
我现在是可以修改的 现在问题是 我想把一个字段不显示 隐藏 但是我要取到他的值
#6
影藏列可以根据控件ID去获取
string grade = ((TextBox)gvFiles.Rows[e.RowIndex]FindControl("控件ID")).Text.ToString().Trim();
string grade = ((TextBox)gvFiles.Rows[e.RowIndex]FindControl("控件ID")).Text.ToString().Trim();
#7
获取不了
#8
比如你最后一列有个"修改"按钮,那么可以在该列放一个隐藏域控件
<asp:Hidden id="xxx" runat="server" value='<%# Bind("字段名称")%>'/>
在后台获取就可以了
<asp:Hidden id="xxx" runat="server" value='<%# Bind("字段名称")%>'/>
在后台获取就可以了
#9
少个点,而且必须是模版列
#10
HiddenField 隐藏域传值
FindControl 找隐藏域的ID
FindControl 找隐藏域的ID
#11
<asp:Hidden id="xxx" runat="server" value='<%# Bind("字段名称")%>'/>
#12
点我加上了的 但是还是取不了
#13
用模板列 里面绑定 textbox 或lable
然后再代码中用 gridview1.rows[i].FindControl("控件Id") 看能不能获取到值
然后再代码中用 gridview1.rows[i].FindControl("控件Id") 看能不能获取到值
#14
只想修改一个字段,那把不想修改的在gridview里面设为只读的,那样就只能修改一个字段了。
#15
后台
((TextBox)gv_Box.Rows[e.RowIndex].FindControl("lbl_ItemType") as TextBox).Text.Trim()
前台
<ItemTemplate>
<asp:Label ID="lbl_ItemType" runat="server" Text='<%# Eval("Remark") %>' Visible="false"></asp:Label>
</ItemTemplate>
#16
同意#13楼。将你不需要修改的字段变为模板列,然后在其EditTemplate模板中的东西,用ItemTemplate模板中的东西复制过来,它就是只读的了。
#17
#18
你是用什么方式隐藏的,visible?这样是无法取值的。
1、protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//用CSS 隐藏列
e.Row.Cells[3].Style.Add( "display ", "none ")
for (int i = 16; i <= 28; i++)
{
e.Row.Cells[i].Style.Add( "display ", "none ");
}
}
2、设计中添加绑定列时钩上“不可见”复选框
3、width=0
4、建立css样式,内容是display:none.然后给需要隐藏的列的,head,item都加上这个样式
1、protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//用CSS 隐藏列
e.Row.Cells[3].Style.Add( "display ", "none ")
for (int i = 16; i <= 28; i++)
{
e.Row.Cells[i].Style.Add( "display ", "none ");
}
}
2、设计中添加绑定列时钩上“不可见”复选框
3、width=0
4、建立css样式,内容是display:none.然后给需要隐藏的列的,head,item都加上这个样式
#19
另外即使不使用模板列,GridView的列定义上也应该一个ReadOnly属性吧?!
#20
添加一列为id,把Visible设为false
#21
这论坛真活跃
#1
我觉得 是不是可以 获取 那个列的值 就好了
#2
你要修改哪个列 在GridView的那个方法里面就获取这个列的值和ID值修改就好了嘛。。。
#3
前台
<asp:GridView ID="GridView1" runat="server">
<asp:TemplateField HeaderText="操作">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" Text="修改你的那个字段" CommandName="set_top" CommandArgument='<%#Eval("id") %>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</asp:GridView>
后台
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
Int32 id = Convert.ToInt32(e.CommandArgument);
if (e.CommandName == "set_top")
{
string sql = "update news set istop=1 where id=" + id;//写修改字段的sql语句
}
try
{
DataBase.Runsql(sql);//执行修改sql语句
}
catch
{
PageAbout.ShowMsg("操作失败!");
}
}
这样就OK了,还看不懂的话加QQ694903456
<asp:GridView ID="GridView1" runat="server">
<asp:TemplateField HeaderText="操作">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" Text="修改你的那个字段" CommandName="set_top" CommandArgument='<%#Eval("id") %>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</asp:GridView>
后台
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
Int32 id = Convert.ToInt32(e.CommandArgument);
if (e.CommandName == "set_top")
{
string sql = "update news set istop=1 where id=" + id;//写修改字段的sql语句
}
try
{
DataBase.Runsql(sql);//执行修改sql语句
}
catch
{
PageAbout.ShowMsg("操作失败!");
}
}
这样就OK了,还看不懂的话加QQ694903456
#4
前台GridView1里面还得加上这个
OnRowCommand="GridView1_RowCommand"
OnRowCommand="GridView1_RowCommand"
#5
我现在是可以修改的 现在问题是 我想把一个字段不显示 隐藏 但是我要取到他的值
#6
影藏列可以根据控件ID去获取
string grade = ((TextBox)gvFiles.Rows[e.RowIndex]FindControl("控件ID")).Text.ToString().Trim();
string grade = ((TextBox)gvFiles.Rows[e.RowIndex]FindControl("控件ID")).Text.ToString().Trim();
#7
获取不了
#8
比如你最后一列有个"修改"按钮,那么可以在该列放一个隐藏域控件
<asp:Hidden id="xxx" runat="server" value='<%# Bind("字段名称")%>'/>
在后台获取就可以了
<asp:Hidden id="xxx" runat="server" value='<%# Bind("字段名称")%>'/>
在后台获取就可以了
#9
少个点,而且必须是模版列
#10
HiddenField 隐藏域传值
FindControl 找隐藏域的ID
FindControl 找隐藏域的ID
#11
<asp:Hidden id="xxx" runat="server" value='<%# Bind("字段名称")%>'/>
#12
点我加上了的 但是还是取不了
#13
用模板列 里面绑定 textbox 或lable
然后再代码中用 gridview1.rows[i].FindControl("控件Id") 看能不能获取到值
然后再代码中用 gridview1.rows[i].FindControl("控件Id") 看能不能获取到值
#14
只想修改一个字段,那把不想修改的在gridview里面设为只读的,那样就只能修改一个字段了。
#15
后台
((TextBox)gv_Box.Rows[e.RowIndex].FindControl("lbl_ItemType") as TextBox).Text.Trim()
前台
<ItemTemplate>
<asp:Label ID="lbl_ItemType" runat="server" Text='<%# Eval("Remark") %>' Visible="false"></asp:Label>
</ItemTemplate>
#16
同意#13楼。将你不需要修改的字段变为模板列,然后在其EditTemplate模板中的东西,用ItemTemplate模板中的东西复制过来,它就是只读的了。
#17
#18
你是用什么方式隐藏的,visible?这样是无法取值的。
1、protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//用CSS 隐藏列
e.Row.Cells[3].Style.Add( "display ", "none ")
for (int i = 16; i <= 28; i++)
{
e.Row.Cells[i].Style.Add( "display ", "none ");
}
}
2、设计中添加绑定列时钩上“不可见”复选框
3、width=0
4、建立css样式,内容是display:none.然后给需要隐藏的列的,head,item都加上这个样式
1、protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//用CSS 隐藏列
e.Row.Cells[3].Style.Add( "display ", "none ")
for (int i = 16; i <= 28; i++)
{
e.Row.Cells[i].Style.Add( "display ", "none ");
}
}
2、设计中添加绑定列时钩上“不可见”复选框
3、width=0
4、建立css样式,内容是display:none.然后给需要隐藏的列的,head,item都加上这个样式
#19
另外即使不使用模板列,GridView的列定义上也应该一个ReadOnly属性吧?!
#20
添加一列为id,把Visible设为false
#21
这论坛真活跃