none
抓不到正確的值 RRS feed

  • 問題

  • 我用vs2003 C#練習寫dataGrid刪除修改的功能

    我想要抓DataGrid編輯之後裡面textbox的值

    例如某欄本來是222

    我打aaa...但是它抓到的還是222耶

    請問這是什麻情況阿?

     

    public void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)

    {

    Response.write((string)((TextBox)e.Item.Cells[3].Controls[0]).Text);

    Response.end();

    }

     

    上面印出來的是222...而不是我打的aaa....

    有人遇過這種問題嗎?

     

    謝謝!

     

    2006年9月8日 上午 08:57

解答

  • HI,

    您是如何觸動UpdateCommand事件的, 如果在觸動UpdateCommand事件有發生PostBack事件(例如按下Button控制項就會引發PostBack), 會先執行到Page_Load事件, 如果Page_Load事件中的程式碼控制不正確, 就有可能先將您輸入的欄位內容值換回原來的值, 然後執行到UpdateCommand事件就抓錯內容了. 所以首先有需要了解您在Page_Load中執行的動作, 以及網頁是如何觸動UpdateCommand事件的

    tihs

    2006年9月9日 上午 08:40

所有回覆

  • HI,

    您是如何觸動UpdateCommand事件的, 如果在觸動UpdateCommand事件有發生PostBack事件(例如按下Button控制項就會引發PostBack), 會先執行到Page_Load事件, 如果Page_Load事件中的程式碼控制不正確, 就有可能先將您輸入的欄位內容值換回原來的值, 然後執行到UpdateCommand事件就抓錯內容了. 所以首先有需要了解您在Page_Load中執行的動作, 以及網頁是如何觸動UpdateCommand事件的

    tihs

    2006年9月9日 上午 08:40
  • 我的pageload裡面....就是取的ds之後

     

    DataGrid1.DataSource = ds ;
    DataGrid1.DataBind();

    要寫IsPostBack嗎?

    如果我寫

    if(!IsPostBack){

    DataGrid1.DataSource = ds ;
       DataGrid1.DataBind();

    }

    我按編輯的話...datagrid 都會不見耶.....

     

     

    令外我趨動的方法

    <asp:datagrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 56px; POSITION: absolute; TOP: 88px" runat="server"
        Width="576px" AutoGenerateColumns="False" Height="248px" OnEditCommand="DataGrid1_EditCommand"
        OnUpdateCommand="DataGrid1_UpdateCommand" OnCancelCommand="DataGrid1_CancelCommand" OnPageIndexChanged="DataGrid1_PageIndexChanged"
        OnDeleteCommand="DataGrid1_DeleteCommand" AllowPaging="True" DataKeyField="au_id">

     

    不知道我到底那裡寫錯了?

     

    謝謝喔

     

    2006年9月11日 上午 01:39
  • 我做好了....謝謝

     

    原來把ds拉到全域宣告

    在把pageload的databind放到ispageload裡面就可以了

     

    感激

    2006年9月11日 上午 02:24