我有一个我没有数据源控件创建的gridview,它有来自数据库表的数据,gridview在一列中也有一个链接选择。 select链接指向ActivityID(可能会出现问题?)
<asp:GridView ID="gwActivity" runat="server" CssClass="gwActivity" AutoGenerateColumns="false" OnSelectedIndexChanged="gwActivity_SelectedIndexChanged">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lnkSelect" Text="Select" runat="server" CommandArgument='<%# Eval("ActivityID") %>' OnClick="lnkSelect_Click">
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="ActivityID" HeaderText="ActivitID" />
<asp:BoundField DataField="Activity" HeaderText="Activit" />
<asp:BoundField DataField="ActivityRegisteredDate" HeaderText="ActivityRegisteredDate" />
<asp:BoundField DataField="Responsible" HeaderText="Responsible" />
<asp:BoundField DataField="Category" HeaderText="Category" />
<asp:BoundField DataField="Change_Requestor" HeaderText="Change_Requestor" />
<asp:BoundField DataField="Priority" HeaderText="Priority" />
<asp:BoundField DataField="Size" HeaderText="Size" />
<asp:BoundField DataField="Status" HeaderText="Status" />
<asp:BoundField DataField="System" HeaderText="System" />
<asp:BoundField DataField="Comment" HeaderText="Comment" />
</Columns>
</asp:GridView>
我创建了一个OnClick事件。
protected void lnkSelect_Click(object sender, EventArgs e)
{
txtActivity.Text = GridView1.SelectedRow.Cells[2].Text;
ddlChange_Requestor.selectedvalue = GridView1.SelectedRow.Cells[6].selectevvalue;
}
我错过了什么?我应该“FindControl”..我有点迷失在这里?
e.g。
活动文本框( txtActivity )= Test2(应该在文本框中说明)......................... .......................... 更改请求者下拉列表( ddlChange_Requestor )= ...(查找更改请求值并更改下拉列表)
答案 0 :(得分:1)
您应该切换到GridView RowCommand
。
<asp:GridView ID="gwActivity" runat="server" OnRowCommand="gwActivity_RowCommand">
将LinkButton更改为
<asp:LinkButton ID="lnkSelect" runat="server" CommandArgument='<%# Eval("ActivityID") %>'>Select</asp:LinkButton>
现在,您可以获得方法中所需的所有数据。
protected void gwActivity_RowCommand(object sender, GridViewCommandEventArgs e)
{
GridViewRow row = (GridViewRow)(((LinkButton)e.CommandSource).NamingContainer);
txtActivity.Text = row.Cells[2].Text;
ddlChange_Requestor.SelectedValue = e.CommandArgument.ToString();
}
答案 1 :(得分:0)
如果您只是将数据从数据网格行复制到输入字段,那么您尝试执行的操作会产生大量执行成本。处理服务器端的LinkButton OnClick事件需要回发页面,触发所有页面事件(例如,将数据绑定到模板的事件,执行LinkButton OnClick事件,并将整个页面呈现为HTML),以及生成的HTML将被发送回浏览器进行显示。
如果您可以使用javascript,则应考虑使用OnClientClick event handler,因为这样可以让您在网页上保留而不会回发到网络服务器。