如题,我的模板列是这样定义的:<asp:DataGrid ID="dg" runat="server" OnEditCommand="dg_update">
<headerstyle HorizontalAlign="Center" />
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:TextBox ID="ybwz" runat="server" Text='<%# DataBinder.Eval (Container.DataItem, "ybwz") %>'>
</asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:editcommandcolumn HeaderText="操作" edittext="修改"/>
</Columns>
</asp:datagrid>
那么update语句该怎么写呢!
sqlstr = "UPDATE dfb SET ybwz = '" & ybwz.Text & "' WHERE id = " & id.Text
<headerstyle HorizontalAlign="Center" />
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:TextBox ID="ybwz" runat="server" Text='<%# DataBinder.Eval (Container.DataItem, "ybwz") %>'>
</asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:editcommandcolumn HeaderText="操作" edittext="修改"/>
</Columns>
</asp:datagrid>
那么update语句该怎么写呢!
sqlstr = "UPDATE dfb SET ybwz = '" & ybwz.Text & "' WHERE id = " & id.Text
...
<asp:EditCommandColumn ButtonType="PushButton" UpdateText="确定" HeaderText="编辑" CancelText="放弃" EditText="修改"></asp:EditCommandColumn>
....
cs里面
绑定的时候指定
this.dg.DataKeyField="ID";
....
public void dg_EditCommand(object sender,DataGridCommandEventArgs e)
{
this.dg.EditItemIndex = (int)e.Item.ItemIndex;
BindGrid();
}
public void dg_CancelCommand(object sender,DataGridCommandEventArgs e)
{
this.dg.EditItemIndex=-1;
BindGrid();}
public void dg_UpdateCommand(object sender,DataGridCommandEventArgs e)
{
string strID=this.dg.DataKeys[(int)e.Item.ItemIndex].ToString();
string str=((TextBox)e.Item.Cells[0].Controls[0]).Text;
....
string sqlstr="UPDATE dfb SET ybwz = '" + str + "' WHERE id = " +strID;
....
this.dg.EditItemIndex=-1;
BindGrid();
}
是不是也查不多的啊
网上搜搜,挺多的
Dim ID As String = CType(e.Item.FindControl("lblID"), Label).Text
Dim BoardType As String = CType(e.Item.FindControl("txtBoardType"), TextBox).Text
Dim ReadMe As String = CType(e.Item.FindControl("txtReadMe"), TextBox).Text
Response.write (ID & "<BR>" & BoardType & "<BR>" & ReadMe)
UpdateRecord(id,boardtype,readme) 'Call Sub
MyDataGrid.ShowFooter = True
MyDataGrid.EditItemIndex = -1
BindGrid()
End Sub Sub UpdateRecord(newID,newBoardType,newReadMe)
Dim MyCommandDel As OleDbCommand
Dim InsertCmd As String = "UPDATE board SET boardtype=@boardtye,readme=@readme WHERE boardid =" & newID
MyCommandDel = New OleDbCommand(InsertCmd, myConnection)
MyCommandDel.parameters.add("@boardtype",Format(newBoardType))
MyCommandDel.parameters.add("@readme",Format(NewReadme))
MyCommandDel.Connection.Open()
MyCommandDel.ExecuteNonQuery()
MyCommandDel.Connection.Close()
End Sub
这个写了是干嘛的啊?起什么作用呢?
是让dg的编辑行复位,也就是让原先进入编辑状态的行重新锁定
EditItemIndex指的是要编辑的行索引