高分求解!!急!!关于DataGrid的问题!!!请高手指教!!!

flamngo 2005-08-28 07:28:34
在DataGrid中加入一列选择button,在第一次绑定数据时,按下选择按钮,显示的是该行的数据!!
再将DataGrid中数据更新后,为什么按下选择按钮,显示的是是原来该行的数据,而不是更新后的数据。在页面上显示DataGrid中的数据已经被更新了!!!!

请高手指教!!!
多谢!!!
...全文
128 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jimu8130 2005-08-28
  • 打赏
  • 举报
回复
jf,注意重新更新数据源然后绑定
flamngo 2005-08-28
  • 打赏
  • 举报
回复
谢谢!!!成功了!!!
gabriel1 2005-08-28
  • 打赏
  • 举报
回复
if(!IsPostBack) {
startIndex = 0;
}
BindGrid();

---> if(!IsPostBack) {
startIndex = 0;BindGrid();
}
flamngo 2005-08-28
  • 打赏
  • 举报
回复
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Web.UI.WebControls"%>
<% @ Page Language="C#" %>
<script runat="server">
int startIndex;
void BindGrid(){
SqlConnection Conn;
//DataGrid datagrid1;
//Conn=new SqlConnection("server=localhost;database=GreenHouse;uid=sa;pwd=''");
Conn = new SqlConnection("Data Source=FLAMNGO; User Id=sa; Password=; Initial Catalog =GreenHouse");
Conn.Open();
//Message.Text=Conn.State.ToString();
DataSet myds = new DataSet();
string sqlstring = "SELECT LEL_NO,LEL_NAME, LEL_SERIES, LEL_CLASS, REMARK FROM LEL_O1";
SqlDataAdapter myda = new SqlDataAdapter(sqlstring,Conn);
myda.Fill(myds, "LE");
dg.DataSource = myds.Tables["LE"].DefaultView;
dg.DataBind();

Conn.Close();
}
void BindGrid_val(string str_no,string str_le){
dg.Dispose();
SqlConnection Conn;
//DataGrid datagrid1;
//Conn=new SqlConnection("server=localhost;database=GreenHouse;uid=sa;pwd=''");
Conn = new SqlConnection("Data Source=FLAMNGO; User Id=sa; Password=; Initial Catalog =GreenHouse");
Conn.Open();
//Message.Text=Conn.State.ToString();
DataSet myds = new DataSet();
string sqlstring = "SELECT LEL_NO,LEL_NAME, LEL_SERIES, LEL_CLASS, REMARK FROM " + "LEL_O" + str_le + " where LEL_NO like \'" + str_no + "%\'";
//string sqlstring = "SELECT LEL_NO,LEL_NAME, LEL_SERIES, LEL_CLASS, REMARK FROM LEL_O6";
//Message.Text= sqlstring;
SqlDataAdapter myda = new SqlDataAdapter(sqlstring,Conn);
myda.Fill(myds, "LE");
dg.DataSource = myds.Tables["LE"].DefaultView;
dg.DataBind();

Conn.Close();
}
void Page_Load(Object sender, EventArgs e) {
if(!IsPostBack) {
startIndex = 0;
}
BindGrid();
}

void ChangePage(Object sender, DataGridPageChangedEventArgs e){
dg.CurrentPageIndex = e.NewPageIndex;
BindGrid();
Message.Text= "2";
}
void dg_ItemCommand(object sender, DataGridCommandEventArgs e){

TableCell cell1 = e.Item.Cells[1];
TableCell cell3 = e.Item.Cells[3];
TableCell cell2 = e.Item.Cells[2];
String strcell = cell1.Text.Trim();
String strcell2 = cell2.Text.Trim();
String strcell3 = cell3.Text.Trim();
int int_cell3 = Convert.ToInt32(strcell3) + 1;
strcell3 = int_cell3.ToString();
Message.Text= Message.Text + strcell2;
BindGrid_val(strcell,strcell3);


}

</script>
<FORM runat="server">
<asp:label id="Message" runat="server"></asp:label>
<asp:DataGrid id="dg" runat="server" BorderStyle="None" GridLines="Horizontal" BorderWidth="1px"
OnItemCommand="dg_ItemCommand" OnPageindexChanged="ChangePage" BorderColor="#E7E7FF" BackColor="White"
CellPadding="3" PageSize="5">
<FooterStyle ForeColor="#4A3C8C" BackColor="#B5C7DE"></FooterStyle>
<HeaderStyle Font-Bold="True" ForeColor="#F7F7F7" BackColor="#4A3C8C"></HeaderStyle>
<PagerStyle HorizontalAlign="Right" ForeColor="#4A3C8C" BackColor="#E7E7FF" Mode="NumericPages"></PagerStyle>
<SelectedItemStyle Font-Bold="True" ForeColor="#F7F7F7" BackColor="#738A9C"></SelectedItemStyle>
<AlternatingItemStyle BackColor="#F7F7F7"></AlternatingItemStyle>
<ItemStyle ForeColor="#4A3C8C" BackColor="#E7E7FF"></ItemStyle>
<Columns>
<asp:ButtonColumn Text="选择" CommandName="Select"></asp:ButtonColumn>
</Columns>
</asp:DataGrid></FORM>


***************************************************
请高手帮我看看!!!
blffcu 2005-08-28
  • 打赏
  • 举报
回复
就是这个关键字,IsPostBack
gabriel1 2005-08-28
  • 打赏
  • 举报
回复
每次postback后,重新帮定数据

如:
void Page_Load()
{
if(!IsPostBack)
{
bindGrid();
}
}


private void bindGrid()
{
//bind datagrid
}

protected void DataGrid1_ItemCommond()
{
if(e.CommandName=="...")
{
//do some thins
//bindGrid()k
}
}
blffcu 2005-08-28
  • 打赏
  • 举报
回复
不对,DataGrid更新时,传递到数据库的值,依然是未更新前的值!和你的按钮没关系
你是在页面加载时给DataGrid加数据的吗?
建议不要用DataGrid,我们也遇到这类问题~
你在页面加载时,试用页面自动返回试试,我不肯定,我们现在不用DataGrid
hackate 2005-08-28
  • 打赏
  • 举报
回复
代码呢?
不知道是否有放在if(!IsPostBack)中
wsh236 2005-08-28
  • 打赏
  • 举报
回复
是不是你的按钮的事件没有触发阿!
如果确定触发了!就要检查你的代码了!
设置个断点看看数据有没有变化!找出来!
cyy1981 2005-08-28
  • 打赏
  • 举报
回复
dataset里面的数据也要更新

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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