从Gridview中检索绑定数据

Qui*_*son 6 sql asp.net gridview eval

我有一个Gridview连接到显示数据的SQL数据源,我希望通过按钮和Eval检索与所选行关联的数据.

有点像,

<asp:LinkButton runat=server OnClientClick="RetrieveInfo" Text="Send" />
Run Code Online (Sandbox Code Playgroud)

但我无法从代码中调用Eval,我也不知道如何获取DataKey.

我一直在网上搜索,但没有找到任何好的东西.谁能帮我?非常感谢.

编辑:

<asp:GridView ID="GridView1" Width="100%" runat="server" AutoGenerateColumns="False"
DataKeyNames="ScheduleID" DataSourceID="SqlDataSource1">
    <Colums>
        <asp:TemplateField HeaderText="Date" SortExpression="Date">
           <ItemTemplate>
            <asp:Label ID="Label1" runat="server" Text='<%#Eval("Date")%>' />
          </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Time" SortExpression="starttime">
           <ItemTemplate>
            <asp:Label ID="Label1" runat="server" Text='<%#Eval("starttime")%>' />
          </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
           <ItemTemplate>
            <asp:LinkButton runat=server OnClientClick="RetrieveInfo" Text="Send" />
          </ItemTemplate>
        </asp:TemplateField>
    </Colums>
</asp:GridView>
Run Code Online (Sandbox Code Playgroud)

它被撇去了,但基本上就是这样.

Sat*_*ngh 3

愿这有帮助

将 gridview html 编辑<Colums></Columns>

<asp:LinkButton runat=server OnClientClick="RetrieveInfo"   CommandName="Update"  Text="Send" />
Run Code Online (Sandbox Code Playgroud)

网格视图 HTML

<asp:GridView ID="GridView1" Width="50%" runat="server" AutoGenerateColumns="False" 
            onrowcommand="GridView1_RowCommand" >
   <Columns>
        <asp:TemplateField HeaderText="Date" SortExpression="Date">
           <ItemTemplate>
            <asp:Label ID="lbldate" runat="server" Text='<%#Eval("Date")%>' />
          </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Time" SortExpression="starttime">
           <ItemTemplate>
            <asp:Label ID="lbltime" runat="server" Text='<%#Eval("starttime","{0:dd MMM yyyy}") %>' />
          </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
           <ItemTemplate>
            <asp:LinkButton runat="server" CommandName="sendvalue" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" OnClientClick="RetrieveInfo" Text="Send" />
          </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
Run Code Online (Sandbox Code Playgroud)

背后代码:

     protected void Page_Load(object sender, EventArgs e)
       {
           bindGridview();
       }

   protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {

        if (e.CommandName == "sendvalue")
            {
                int getrow = Convert.ToInt32(e.CommandArgument);
                Label lbldate = (Label)GridView1.Rows[getrow].FindControl("lbldate");
                Label lbltime = (Label)GridView1.Rows[getrow].FindControl("lbltime");
                string getDate = lbldate.Text;
                string getStartTime = lbltime.Text;
               //here you retrieve all the value of select row and do your logic for link butn
                GridView1.EditIndex = -1;
                bindGridview();
            }
    }

    public void bindGridview()
    {
        SqlDataAdapter dap = new SqlDataAdapter("select Date,startTime from yourtable", con);
        DataSet ds = new DataSet();
        dap.Fill(ds);
        DataTable dt = ds.Tables[0];
        GridView1.DataSource = dt;
        GridView1.DataBind();
    }
Run Code Online (Sandbox Code Playgroud)