Как сделать так, чтобы поле шаблона Gridview выбирало строку данных?

У меня есть командное поле в сетке, которое, как есть, работает так, как должно. Когда я выбираю его, строка подсвечивается. Однако мне нужно было преобразовать это поле в шаблон, чтобы я мог дать ему идентификатор, на который я мог ссылаться при использовании элемента управления AJAX Mobal. Я сделал это, и я могу легко ссылаться на него с помощью своего элемента управления Ajax, но теперь это поле не выбирает строку в Gridview? Значение Select необходимо элементу управления Ajax для передачи данных. Итак, я думаю, что моя проблема в том, как использовать это поле команды в качестве шаблона и выбрать строку? Надеюсь, я правильно объясняю свою проблему.
Вот фрагмент кода, когда я преобразовываю его в шаблон. Спасибо!

   <asp:GridView ID="GridView3" runat="server" AllowPaging="True" AutoGenerateColumns="False" CellPadding="3" DataKeyNames="Contact_ID" DataSourceID="SqlDataSource2" ForeColor="#333333" GridLines="None" PageSize="6">
         <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
             <Columns>
                <asp:TemplateField ShowHeader="False">
                    <ItemTemplate>
                        <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Select" Text="Edit"></asp:LinkButton>
                       <asp:ModalPopupExtender ID="ModalPopupExtender2" runat="server" TargetControlID="LinkButton1" PopupControlID="DetailsView1" BackgroundCssClass="modalBackground"></asp:ModalPopupExtender>
                    </ItemTemplate>
                 </asp:TemplateField>
                 <asp:BoundField DataField="Contact_ID" HeaderText="Contact_ID" InsertVisible="False" ReadOnly="True" SortExpression="Contact_ID" Visible="False" />
                 <asp:BoundField DataField="Contact_Assigned_Username" HeaderText="Username" SortExpression="Contact_Assigned_Username" />
                 <asp:BoundField DataField="Contact_First_Name" HeaderText="First Name" SortExpression="Contact_First_Name" />
                 <asp:BoundField DataField="Contact_Last_Name" HeaderText="Last Name" SortExpression="Contact_Last_Name" />
                 <asp:BoundField DataField="Contact_Email_Address" HeaderText="Email Address" SortExpression="Contact_Email_Address" />
                 <asp:BoundField DataField="Contact_Cell_Phone" HeaderText="Cell Phone" SortExpression="Contact_Cell_Phone" />
                 <asp:CheckBoxField DataField="Contact_Administrator" HeaderText="Admin" SortExpression="Contact_Administrator" />
                 <asp:CheckBoxField DataField="Contact_LineStat_Triggers_Email" HeaderText="Email Triggers" SortExpression="Contact_LineStat_Triggers_Email" />
                 <asp:CheckBoxField DataField="Contact_LineStat_Triggers_Text" HeaderText="Text Triggers" SortExpression="Contact_LineStat_Triggers_Text" />
                 <asp:CheckBoxField DataField="Contact_Web_Portal" HeaderText="Web Access" SortExpression="Contact_Web_Portal" />
                 <asp:BoundField DataField="Contact_Customer_ID" HeaderText="Contact_Customer_ID" SortExpression="Contact_Customer_ID" Visible="False" />
              </Columns>
         <EditRowStyle BackColor="#999999" />
         <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
         <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
         <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
         <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
         <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
         <SortedAscendingCellStyle BackColor="#E9E7E2" />
         <SortedAscendingHeaderStyle BackColor="#506C8C" />
         <SortedDescendingCellStyle BackColor="#FFFDF8" />
         <SortedDescendingHeaderStyle BackColor="#6F8DAE" />
     </asp:GridView>

person John    schedule 16.08.2011    source источник
comment
Пожалуйста, приложите больше усилий, чтобы отформатировать свой код, чтобы он был удобочитаемым в следующий раз.   -  person Tim Schmelter    schedule 16.08.2011


Ответы (1)


В событии RowDataBound попробуйте что-то вроде этого:

protected void GridView3_RowDataBound(object sender, GridViewRowEventArgs e)
{
    LinkButton btn = (LinkButton)e.Row.FindControl("LinkButton1");
    btn.OnClientClick = Page.ClientScript.GetPostBackEventReference(GridView3, "Select$" + e.Row.RowIndex.ToString()));
}
person James Johnson    schedule 16.08.2011
comment
Спасибо за помощь. Могу ли я поместить это в код vb.net позади? - person John; 16.08.2011
comment
Назначьте обработчик событий OnRowDataBound в ASPX и используйте этот код для обработки события в исходном коде. В этом случае синтаксис VB должен быть довольно похожим. - person James Johnson; 16.08.2011
comment
Я еще не совсем понял это, но я ценю вашу помощь! - person John; 16.08.2011