C # DetailsView получить значение - PullRequest
0 голосов
/ 26 октября 2011

Я пытаюсь получить userID из моей базы данных, поместить его в DetailsView, получить значение и установить его в качестве метки.

Я получаю сообщение об ошибке, что строка пуста.

public void SendButton_Click(object sender, EventArgs e)
{
    labelID.Text = DetailsView1.Rows[0].Cells[1].Text;
    strVariable = labelID.Text;

    System.Diagnostics.Debug.Write("variabelen: " + strVariable);
    System.Guid g =  new Guid(strVariable);
    SqlDataSource1.InsertParameters[3].DefaultValue = g.ToString();
    SqlDataSource1.Insert();
}


<asp:Label ID="labelID"  Name="LabelID" runat="server"></asp:Label>

<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" 
    DataSourceID="SqlDataSource2" Height="50px" Width="125px" 
    DefaultMode="Edit">
    <Fields>
        <asp:BoundField DataField="UserId" HeaderText="UserId" 
            SortExpression="UserId" />
    </Fields>
</asp:DetailsView>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
    SelectCommand="SELECT UserId FROM aspnet_Users WHERE (UserName = 'bo')">

</asp:SqlDataSource>

Обратите внимание, что labelID.Text находится в событии нажатия кнопки и что загрузка Detailview (grid) происходит при входе пользователя в систему. Идентификатор пользователя get загружается в detailsview1 при входе пользователя в систему.

Как я могу это исправить?

1 Ответ

3 голосов
/ 26 октября 2011

Трудно сказать точно, в чем проблема, без большего контекста, но я бы предположил, что DetailsView1.Rows[0].Cells[1].Text не является правильным местом в DetailsView для поиска идентификатора пользователя. Вы можете попытаться установить точку останова на этой строке в Visual Studio и пройтись по строкам и ячейкам в ближайшем окне, чтобы найти правильное местоположение.

Если бы вы могли предоставить код, который вы используете в качестве источника данных для DetailsView, а также определение DetailsView, которое будет полезно.

РЕДАКТИРОВАТЬ НА ОСНОВЕ НОВОГО КОДА ОБРАЗЦА:

Когда я запускаю ваш пример кода, ( DetailsView1.Rows[0].Cells[1].Controls[0] as TextBox ).Text дает мне значение идентификатора пользователя. Вам нужно перейти в коллекцию Controls на Cells[1], поскольку DetailsView отображает связанные поля как TextBoxes.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...