Как назвать обработчики событий, когда не используется декларативный SqlDataSource в ASPX? - PullRequest
0 голосов
/ 07 января 2019

Я хочу перейти от использования декларативных элементов управления SqlDataSource на странице aspx к коду позади. Как мне кодировать обработчики для таких событий, как Selected, Selecting, PreRender и т. Д., Если нет идентификатора источника данных? Если есть лучший способ сделать это, пожалуйста, дайте мне знать.

//With a datasource named MyDS, I can do this in ASPX:
    <asp:GridView ID="gvReport" runat="server" DataSourceID="ID="MyDS"> </asp:GridView>

    <asp:SqlDataSource ID="MyDS" runat="server" ConnectionString="<%$ ConnectionStrings:csM7DB02 %>"
        SelectCommand="SELECT Top(50) M7Sd.StudyID FROM StudyData M7Sd"
        OnSelecting="MyDS_Selecting" OnSelected="MyDS_Selected">
    </asp:SqlDataSource>

//And this in code behind:
    protected void MyDS_Selecting(object sender, SqlDataSourceSelectingEventArgs e) {
            e.Command.CommandTimeout = 180;     //Change timeout for slow queries
        }

//BUT, if I don't use a datasource control in ASPX, I won't have a datasource ID to name the handlers.
//So how can I code handler for the datasource events using the following approach?

//ASPX:
    <asp:GridView ID="gvReport" runat="server"> </asp:GridView>  //NOT USING A DATASOURCE

//CODE BEHIND:
    protected void Page_Load(object sender, EventArgs e) {
        if ( ! IsPostBack )  {
            GetData();
        }
    }

    private void GetData()  {
        DataTable table = new DataTable();
        using (SqlConnection conn = new SqlConnection(constr))  {
            string sql = "SELECT Top(50) M7Sd.StudyID FROM StudyData M7Sd";
             using (SqlCommand cmd = new SqlCommand(sql, conn))  {
                using (SqlDataAdapter ad = new SqlDataAdapter(cmd)) {
                    ad.Fill(table);
                }
            }
        }
        gvReport.DataSource = table;
        gvReport.DataBind();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...