none
DetailsView 更新如何获得编辑数据 RRS feed

  • 问题

  • 我的DetailsView使用sqldatasource作为数据源

    <asp:DetailsView ID="dtil_ContactInfo" runat="server" Height="50px" Width="369px" 
            DataSourceID="sds_ContactInfo" AutoGenerateDeleteButton="True" 
            AutoGenerateEditButton="True" AutoGenerateRows="False" 
            AutoGenerateInsertButton="True" Font-Size="14px" 
            onitemupdating="dtil_ContactInfo_ItemUpdating">
          <Fields>
            <asp:BoundField DataField="companyName" HeaderText="公司名称" 
              SortExpression="companyName" />
            <asp:BoundField DataField="companyAddress" HeaderText="公司地址" 
              SortExpression="companyAddress" />
            <asp:BoundField DataField="companyTel" HeaderText="公司电话" 
              SortExpression="companyTel" />
            <asp:BoundField DataField="companyFax" HeaderText="公司传真" 
              SortExpression="companyFax" />
            <asp:BoundField DataField="companyEmail" HeaderText="公司邮箱" 
              SortExpression="companyEmail" />
            <asp:BoundField DataField="companyWebsite" HeaderText="公司网站" 
              SortExpression="companyWebsite" />
            <asp:BoundField DataField="companyPostcode" HeaderText="邮政编码" 
              SortExpression="companyPostcode" />
            <asp:BoundField DataField="contacterEmail" HeaderText="联系人邮箱" 
              SortExpression="contacterEmail" />
            <asp:BoundField DataField="contacterNumber" HeaderText="联系人电话" 
              SortExpression="contacterNumber" />
            <asp:BoundField DataField="contacterName" HeaderText="联系人" 
              SortExpression="contacterName" />
            <asp:BoundField DataField="lang" HeaderText="语言" SortExpression="lang" 
              ReadOnly="True" />
          </Fields>
        </asp:DetailsView>
    

    我的问题是,在itemdataupdating事件处理程序中,我如何获得自动生成的textbox里的内容?

    2011年6月15日 7:20

答案

  • Hello:)

    两种方法——任选其一即可

    1)

    void CustomerDetail_ItemUpdating(object sender,
        DetailsViewUpdateEventArgs e)
      {    for (int i = 0; i < e.NewValues.Count; i++)     //使用e.NewValues获取每个字段的要被更新的值(如用e.OleValues则获取原来的旧的值)【推荐!!!】
        {
          if (e.NewValues[i] != null)
          {
            e.NewValues[i]; //自己处理

          }
        }
      }

    2)直接写——

    for(int i=0;i<DetailsView1.Rows.Count;++i)

    {

       (DetailsView1.Rows[i].Cells[1].Controls[0] as TextBox).Text; //获取TextBox中的当前值。

    }


    如果你有其它意见或私下交流,请发送邮件到:maledong@qq.com;或者请讨论
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    • 已标记为答案 托雷斯 2011年6月15日 11:27
    2011年6月15日 9:02