【问题标题】:How Can I get value from GridView_RowUpdating如何从 GridView RowUpdating 获得价值
【发布时间】:2014-04-17 05:22:16
【问题描述】:
Public Function GridView_RowUpdating(sender As Object, _ 
                                e As GridViewUpdateEventArgs) As    Integer

    Dim ID As Integer = GridView1.DataKeys(e.RowIndex).Value
    Return ID

End Function

我需要 id(datakey) 来在另一个页面上编辑来自 myGridview 的数据。我该怎么做?

【问题讨论】:

  • 您到底想做什么?问题不够清楚。
  • 我想在单击gridview 中的更新链接时更新数据。我建立另一个网页来编辑数据
  • @user3534404:欢迎使用 StackOverflow。请花一些时间通过添加更多详细信息来编辑您的问题。添加诸如,您的确切要求是什么?到目前为止你做了什么?你被困在哪里?单击GridViewRow 中的编辑链接时,您是否尝试打开新的EditDetails 页面?
  • 尝试使用 request.querystring 并将您的密钥转移到编辑页面并检索有关数据进行编辑。
  • 我想在单击gridview 中的更新链接时更新数据。我建立另一个网页来编辑数据 // 例如 Dim db as SampleEntity() Dim obj = db.tblCustomer.First(Function(x) x.ID = ID) obj.Customer = Customer.Text db.SaveChange() // Gridview 在 Webform1 上,Editpage 在 Webform 2 上

标签: asp.net vb.net gridview


【解决方案1】:

chk 这段代码会对你有所帮助....

  <asp:GridView ID="grdViewTracking" runat="server" AllowPaging="True" AllowSorting="true"
                        OnSorting="grdViewTracking_Sorting" AutoGenerateColumns="False" BorderColor="#E7E7E7"
                        BorderStyle="Solid" BorderWidth="1px" OnPageIndexChanging="grdViewTracking_PageIndexChanging"
                        CellPadding="1" ForeColor="#666666" PageSize="10" Width="100%">
                        <Columns>
                            <asp:TemplateField HeaderText="#" ItemStyle-HorizontalAlign="Center">
                                <ItemTemplate>
                                    <table>
                                        <tr style="background-color: White">
                                            <td style="padding-left: 5px;">
                                                <%#DataBinder.Eval(Container.DataItem, "Number")%>
                                            </td>
                                        </tr>
                                    </table>
                                </ItemTemplate>
                                <ItemStyle Width="5%" />
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Key" SortExpression="Key" ItemStyle-HorizontalAlign="Left">
                                <HeaderStyle HorizontalAlign="Left" CssClass="PaddingLeft5" />
                                <ItemTemplate>
                                    <table>
                                        <tr style="background-color: White">
                                            <td style="padding-left: 5px">
    ***<asp:LinkButton ID="lnkkey" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "Key")%>'></asp:LinkButton>***

                                                <input type=hidden runat="server"   id="hfid" value=' <%#DataBinder.Eval(Container.DataItem, "Appsettingid")%>' />
                                            </td>
                                        </tr>
                                    </table>
                                </ItemTemplate>
                                <ItemStyle Width="15%" />
                            </asp:TemplateField>

下面的代码将控制权转移到第二页,即编辑页面.....

protected void grdViewTracking_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            BusinessLogicPOS.AppSettingArgs ob = e.Row.DataItem as BusinessLogicPOS.AppSettingArgs;
            LinkButton lnkkey = e.Row.FindControl("lnkkey") as LinkButton;
            lnkkey.PostBackUrl = "AppSetting.aspx?AppSettingId=" + ob.AppSettingId.ToString();
        }

检查参考:

example

【讨论】:

  • 如果答案有用,请接受它作为正确答案以供其他用户理解并点赞
  • +1 苏尼尔。 @user3534404:读这个。 How does accepting an answer work?
  • 感谢发布链接,它对新用户了解系统并鼓励他们做出更多贡献并解决问题非常有用,以便帮助其他人。
【解决方案2】:

最简单的方法是这样的。

在 WebForm1 标记中使用这两种方法之一

一个。使用asp:TemplateField

<asp:TemplateField>
    <ItemTemplate>
        <asp:HyperLink ID="EditLink" runat="server" 
                NavigateUrl='<%# "~/WebForm2.aspx?id=" + Eval("ID") %>'
                Text="Update" />
    </ItemTemplate>
</asp:TemplateField>

b.使用asp:HyperLinkField

<asp:HyperLinkField Text="Update"
    DataNavigateUrlFields="ID"
    DataNavigateUrlFormatString="~\WebForm2.aspx?id={0}"          
    HeaderText="Action" />

在 WebForm2 代码隐藏中执行此操作

Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
    If Not IsPostBack Then
        If Request.QueryString("id") IsNot Nothing Then
            Dim passedID As String = Request.QueryString("id")
            'populate the fields using .FirstOrDefault
        Else
            'no id passed. cannot process
        End If
    End If
End Sub

【讨论】:

  • 非常感谢 mr.naveen,这很有帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多